このドキュメントでは、reCAPTCHA ファイアウォール ポリシーの概要について説明します。
reCAPTCHA ファイアウォール ポリシーは、条件属性に一致する一連のルールで、スパムや不正行為からサイトを保護します。各ルールは受信トラフィックについて評価されます。ルールは、ポリシーに追加された順序で評価されます。
reCAPTCHA ファイアウォール ポリシーのコンポーネント
reCAPTCHA ファイアウォール ポリシー ルールは、次のコンポーネントで構成されています。
path
: ファイアウォール ポリシー ルールが適用される URL パス。例:/login
condition
: ポリシー条件。ポリシー条件は、ブール値に解決される CEL(Common Expression Language)式です。例:recaptcha.score >= 0.5
action
: ポリシー条件が満たされたときに WAF サービス プロバイダが実行するアクション。詳細については、ポリシー アクションをご覧ください。
受信リクエストが指定されたパスのポリシー条件と一致する場合、WAF サービス プロバイダは指定されたアクションに基づいてリクエストを許可、ブロック、またはリダイレクトします。デフォルトのルールではアクセスを許可します。
reCAPTCHA ファイアウォール ポリシーの例
次の reCAPTCHA ファイアウォール ポリシーの例には、login
アクションに適用されるルールが含まれています。スコアが 0.5 未満の場合、アクセスがブロックされます。
policy {
path: login.php
condition: recaptcha.score < 0.5
action: block
}
reCAPTCHA ファイアウォール ポリシーの条件属性
次の表に、reCAPTCHA ファイアウォール ポリシーの条件の定義に使用できる reCAPTCHA トークンの属性を示します。
属性名 | データ型 | 説明 |
---|---|---|
recaptcha.token.valid |
ブール値 | 受信したトークンが有効かどうか。スコアが低くても、トークンが不正な形式でないか期限切れでない限り、トークンは有効です。 |
recaptcha.token.action |
文字列 | トークン生成時に提供されるアクション名。
アクション トークンに対してのみ入力されます。これは、トークンの作成時に grecaptcha.enterprise.execute() に渡される action パラメータです。詳細については、アクション名をご覧ください。
|
recaptcha.score |
float | reCAPTCHA トークンからのスコア。有効なスコアの範囲は 0.0 ~ 1.0 です。 スコア 1.0 は、インタラクションのリスクが低く、正当である可能性が非常に高いことを示します。一方で 0.0 は、インタラクションのリスクが高く、不正行為の可能性があることを示します。詳細については、スコアの解釈をご覧ください。 |
recaptcha.assessment_type |
整数 | 実施された評価の種類。assessment_type は、リクエストで渡される WAF 用 reCAPTCHA キーに従って設定されます。CEL 式で
AssessmentType.ACTION を使用します。
|
http.ip |
文字列 | 受信リクエストの IP アドレス。 |
http.path |
文字列 | リクエスト URI のパス。 |
http.domain |
文字列 | リクエストされた URI のドメイン。 |
reCAPTCHA ファイアウォール ポリシーのアクション
次の表に、reCAPTCHA ファイアウォール ポリシー ルールで指定できるさまざまなポリシー アクションを示します。
ポリシーのアクション | 説明 | アクションの結果 |
---|---|---|
allow |
リクエストされたページへのアクセスを許可します。 | 受信したユーザー リクエストが中断されることはありません。 |
block |
リクエストされたページへのアクセスを拒否します。 | 403(禁止)HTTP エラーがユーザーに返されます。 |
redirect |
受信したユーザー リクエストを reCAPTCHA 課題ページにリダイレクトします。 | reCAPTCHA 課題ページでは、ユーザー リクエストを評価し、評価に基づいて Cookie を添付します。その後、ユーザー リクエストは元のページにリダイレクトされます。 |
substitute |
不正なユーザー リクエストに、リクエストされたページとは異なるページを表示します。 | リクエストをバックエンドに送信するときに、リクエストされたパスが別のパスに置き換えられます。ユーザーには元の URL が引き続き表示されます。 |
set_header |
カスタム ヘッダーを設定し、受信したユーザー リクエストをバックエンドに続行できるようにします。バックエンドは、カスタム保護をトリガーできます。 | ヘッダーがユーザー リクエストに追加されます。バックエンドは、このヘッダーを使用してカスタム保護または分析をトリガーします。 |