reCAPTCHA 방화벽 정책 예시

이 문서에서는 구현한 reCAPTCHA WAF 기능을 기준으로 만들 수 있는 reCAPTCHA 방화벽 정책의 예시를 보여줍니다.

예시 1: 작업 토큰을 사용하는 reCAPTCHA 방화벽 정책

reCAPTCHA 작업 토큰을 추가하여 로그인과 같은 사용자 작업을 보호할 수 있습니다. 사용자가 로그인 작업을 시작할 때 reCAPTCHA 쿠키가 발급되도록 하려면 홈페이지에 reCAPTCHA 작업 토큰 스크립트를 통합합니다.

다음 규칙으로 reCAPTCHA 방화벽 정책을 만듭니다.

  • 규칙을 적용해야 하는 경로입니다. 이 경우 login.php입니다.
  • 작업 토큰의 작업 이름 속성이 보호되는 사용자 작업과 일치하지 않거나 점수가 0.1 이하인 경우 액세스를 차단합니다.
  gcloud recaptcha firewall-policies create \
      --description="example1 policy" \
      --path="/login.php" \
      --condition="recaptcha.token.action != "login" || recaptcha.score <= 0.1" \
      --actions="block"

다음 이미지는 reCAPTCHA 작업 토큰 기능 및 해당 reCAPTCHA 방화벽 정책을 사용하는 워크플로를 보여줍니다.

예시 2: 세션 토큰을 사용하는 reCAPTCHA 방화벽 정책

사용자가 액세스할 수 있는 페이지에 reCAPTCHA 세션 토큰을 추가하여 쿠키가 주기적으로 새로고침되도록 할 수 있습니다(예: 결제 페이지). 사용자가 결제 페이지에 들어가기 전에 애플리케이션 백엔드에서 reCAPTCHA 쿠키가 발급되고 새로고침되도록 reCAPTCHA 세션 토큰 스크립트를 통합합니다. 결제 페이지에서 reCAPTCHA 세션 토큰 스크립트를 통합하면 애플리케이션 백엔드에서 reCAPTCHA 쿠키가 발급되고 새로고침되어 쿠키가 만료되지 않습니다.

다음 규칙으로 reCAPTCHA 방화벽 정책을 만듭니다.

  • 규칙을 적용해야 하는 경로입니다. 이 경우 checkout.html입니다.
  • 점수가 0.1 이하인 경우 액세스를 차단합니다.
   gcloud recaptcha firewall-policies create \
       --description="example2 policy" \
       --path="/checkout.html" \
       --condition="recaptcha.score <=0.1" \
       --actions="block"

다음 이미지는 reCAPTCHA 세션 토큰 기능 및 해당 reCAPTCHA 방화벽 정책을 사용하는 워크플로를 보여줍니다.

예시 3: 테스트 페이지를 사용하는 reCAPTCHA 방화벽 정책

사용자 요청이 잠재적으로 허위인지 또는 적법한지 여부를 결정하는 인터스티셜 페이지로 사용자를 리디렉션하려는 경우 reCAPTCHA 테스트 페이지 기능을 추가할 수 있습니다.

보호하려는 페이지의 경우 reCAPTCHA 방화벽 정책 규칙을 만들어 사용자를 테스트 페이지로 리디렉션합니다.

  • 보호된 페이지의 경우 토큰이 유효하지 않으면 사용자를 테스트 페이지로 리디렉션합니다. 이 경우 index.html입니다.
  • 점수가 0.1 이하인 경우 사용자를 오류 페이지로 리디렉션합니다.

     gcloud recaptcha firewall-policies create \
         --description="example3-1 policy" \
         --path="/index.html" --condition="!recaptcha.token.valid" --actions="redirect"
    
     gcloud recaptcha firewall-policies create \
         --description="example3-2 policy" \
         --path="/index.html" --condition="recaptcha.score <= 0.1" --actions="substitute { path: /bot_error }"
    

다음 이미지는 reCAPTCHA 테스트 페이지 기능과 해당 reCAPTCHA 방화벽 정책을 사용하는 워크플로를 보여줍니다.

예시 4: 작업 토큰 및 테스트 페이지를 사용하는 reCAPTCHA 방화벽 정책

웹페이지에서 서로 다른 보호 수준을 사용하려면 reCAPTCHA WAF 기능을 두 개 이상 사용할 수 있습니다. 예를 들어 reCAPTCHA 점수를 사용하여 수신되는 트래픽을 평가하려면 페이지에서 작업 토큰 또는 세션 토큰 기능을 사용할 수 있고, 사용자가 봇이 아닌지 확인하려는 페이지에서는 테스트 페이지 기능을 사용할 수 있습니다.

reCAPTCHA 작업 토큰을 추가하여 로그인과 같은 사용자 작업을 보호할 수 있습니다. 사용자가 로그인 작업을 시작할 때 reCAPTCHA 쿠키가 발급되도록 하려면 보호된 로그인 작업 앞의 페이지에 reCAPTCHA 작업 토큰 스크립트를 통합합니다. 예를 들면 홈페이지입니다. 다운로드 페이지에서 사용자를 테스트 페이지로 리디렉션하려면 reCAPTCHA 방화벽 정책 규칙을 사용합니다.

다음 규칙으로 reCAPTCHA 방화벽 정책을 만듭니다.

  • 규칙을 적용해야 하는 경로입니다. 이 경우 login.php입니다.
  • 작업 토큰의 작업 이름 속성이 보호되는 사용자 작업과 일치하지 않거나 평가 유형이 ACTION이 아니거나 점수가 0.1 이하인 경우 액세스를 차단합니다.
  • 사용자가 콘텐츠를 다운로드할 때 사용자를 테스트 페이지로 리디렉션하려면 방화벽 정책 규칙을 추가하여 사용자를 리디렉션합니다.
  • 점수가 0.1 이하인 경우 또는 평가 유형이 CHALLENGEPAGE가 아닌 경우 사용자를 오류 페이지로 리디렉션합니다.
    gcloud recaptcha firewall-policies create --description="example4-1 policy"
        --path="/login.php" --condition="recaptcha.token.action != "login" || recaptcha.assessment_type != AssessmentType.ACTION || recaptcha.score <= 0.1" --actions="block"
    gcloud recaptcha firewall-policies create --description="example4-2 policy"
        --path="/content/example.pdf" --condition="recaptcha.assessment_type != AssessmentType.CHALLENGEPAGE" --actions="redirect"
    gcloud recaptcha firewall-policies create --description="example4-3 policy"
        --path="/content/example.pdf" --condition="recaptcha.score <= 0.1 || recaptcha.assessment_type != AssessmentType.CHALLENGEPAGE" --actions="substitute { path: /bot_error }"

다음 이미지는 reCAPTCHA 작업 토큰 및 reCAPTCHA 테스트 페이지 기능과 해당 reCAPTCHA 방화벽 정책을 사용하는 워크플로를 보여줍니다.

예시 5: WAF 익스프레스 보호 및 테스트 페이지를 사용하는 reCAPTCHA 방화벽 정책

사용자를 방해하지 않고 사용자 상호작용을 평가하려면 reCAPTCHA WAF 익스프레스 보호 기능을 추가한 후 점수가 낮으면 사용자를 테스트 페이지로 리디렉션하면 됩니다. 예를 들어 데이터 스크래핑을 방지하기 위해 카탈로그 페이지에 대한 트래픽을 차단해야 합니다.

다음 규칙으로 reCAPTCHA 방화벽 정책을 만듭니다.

  • 규칙을 적용해야 하는 경로입니다.
  • 점수가 0.3 이하인 경우 사용자를 테스트 페이지로 리디렉션합니다.

다음 예시에서는 점수가 0.3 미만일 때 /catalog1/itemlist.html의 트래픽 타겟팅을 리디렉션하는 reCAPTCHA 방화벽 정책을 만듭니다.

    gcloud recaptcha firewall-policies create \
        --description="example5 policy" \
        --path="/catalog1/itemlist.html" \
        --condition="recaptcha.score <= 3" \
        --actions="redirect"

다음 단계