Web防护モジュールは複数の対処方法を提供します。異なる機能モジュールでサポートされる対処方法は異なります。具体的な機能モジュールのドキュメントを参照してください。
|
ブロック | リクエストによるサイトへのアクセス(キャッシュまたは非キャッシュコンテンツを含む)をブロックするために使用されます。 | ブロックページとブロックステータスコードを返します。 | 他のポリシーとはマッチングされません。 |
許可 | 現在のセキュリティモジュールの残りのルールをスキップするために使用されます。 | 現在のモジュールでは、その他のルールはこのリクエストに一致しなくなります。 | 引き続き他の有効なルールとマッチングします。 |
監視 | セキュリティポリシーの評価またはグレースケール展開に使用されます。 | ログのみを記録し、処置は行いません。 | 引き続き他のルールとマッチングします。 |
リダイレクト | 代替リソースを提供し、ブロックされた際のユーザーアクセス体験を改善するために使用されます。 | 指定されたURLへリダイレクトします。 | 他のポリシーとはマッチングされません。 |
カスタムページを返します。 | より良いエクスペリエンスのブロックページを提供するために使用されます。 APIフォーマットとの互換性のために使用され、APIが解析可能なエラー情報を返します。 業務監視に使用され、指定されたステータスコードによってブロックされたリクエストを監視します。 | カスタムエラーページとステータスコードを返します。カスタムエラーページ機能で定義されたページ内容の参照をサポートします。 | 他のポリシーとはマッチングされません。 |
IPブロック | 悪意のあるクライアントを処罰するために使用されます。 | リクエストが一致条件にヒットした場合、一定期間、そのクライアントIPからのリクエストを破棄します。 注意: クライアントIP(XFFヘッダーを優先的にマッチング)マッチング条件を使用した場合、IPブロックはリクエスト送信元のクライアントIPに基づいて実行され、XFFヘッダーに基づいては実行されません。設定は慎重に行ってください。 | 他のポリシーとはマッチングされません。 |
| JavaScriptをサポートしないツールクライアントを識別するために使用されます。DDoS攻撃元でよく見られます。 | リダイレクト(HTTP 302)ページを応答し、ページにはJavaScriptコードが含まれており、クライアントブラウザの動作を検証します。検証を通過した訪問者のみがアクセスを継続できます。 | チャレンジを通過したリクエストは、引き続き他のルールとマッチングします。 |
| Bot 対策に使用され、まず JavaScript チャレンジによる検証を行い、検証を通過したリクエストに対して CAPTCHA による人間認証を行います。 | まずJavaScriptチャレンジを実行します。検証を通過したクライアントには、リダイレクト(HTTP 302)ページを応答し、Captcha検証が含まれます。ユーザーは対話操作で検証を完了します。両方の検証を通過した訪問者のみがアクセスを継続できます。 | チャレンジを通過したリクエストは、引き続き他のルールとマッチングします。 |
JavaScriptチャレンジ
JavaScriptチャレンジの検証プロセスはブラウザで無感覚の検証であり、検証ページは表示されず、人の介入は不要です。ブラウザは自動的に検証を完了し、リクエストされたリソースを表示できます。この方式は、分散スクリプトによって開始されるDDoS攻撃を効果的にフィルタリングできます。
JavaScriptチャレンジの適用シーン
JavaScriptチャレンジは主に以下のリソースの保護に適用されます:
ブラウザアクセスに使用されるページ。
ブラウザがページにアクセスした後にのみアクセスされるリソース。
注意:
JavaScriptチャレンジは以下のシナリオには適用されません:
非ブラウザクライアントのアクセスおよび一部のシナリオには、モバイルAppがアクセスするAPIインターフェース、ページを介して呼び出す必要のないAPIインターフェースなどが含まれます。このようなシナリオでは、クライアントがJavaScript応答コンテンツを正常に処理できないため、検証に合格できず、ブロックされる可能性があります。
非HTML静的リソースにアクセスする際に、Acceptなどのリクエストヘッダーオプションを使用するシナリオ。このようなシナリオでは、JavaScriptチャレンジの応答コンテンツとAcceptヘッダーのコンテンツタイプオプションが一致しないため、クライアントが正常に検証を通過できず、リソースへのアクセスに失敗する可能性があります。
上記のビジネスシナリオでは、カスタムコンテンツの応答、URLへのリダイレクト、またはブロックの処理方法を使用するか、保護例外ルールを設定して、ビジネスの正常な動作を確保してください。
JavaScriptチャレンジのインタラクションフロー
安全防护策略がJavaScriptチャレンジを使用してリクエストを処理する場合、リダイレクトページ(HTTP 302)を応答し、ページコンテンツにブラウザの実行環境を検証するためのJavaScriptプログラムを含めます。JavaScriptが有効なブラウザがこの応答を受信すると、この検証プログラムを実行し、HTTP 302リダイレクトを実行します。リダイレクトリクエストを受信した後、EdgeOneの安全防护モジュールは、正当な識別子(クライアントIPとUser-Agent)を持つリクエストを通過させます。
マネージドチャレンジ
托管チャレンジはJavaScriptチャレンジとCAPTCHA(人間検証)を統合し、二次検証を通じてブラウザ環境と人間のユーザーを検証します。この方式は、非ブラウザクライアントのアクセスを効果的にフィルタリングできます。
マネージドチャレンジのインタラクションフロー
安全防护策略がJavaScriptチャレンジを使用してリクエストを処理する場合、まずJavaScriptチャレンジメカニズムを実行し、リダイレクトページ(HTTP 302)を応答し、ページコンテンツにブラウザの実行環境を検証するためのJavaScriptプログラムを含めます。JavaScriptが有効なブラウザがこの応答を受信した後、リダイレクト(HTTP 302)を応答し、ページにインタラクティブなCAPTCHA検証プログラムを埋め込みます。プログラムはクライアント側で検証を完了した後、HTTP 302リダイレクトを実行します。リダイレクトリクエストを受信した後、EdgeOneの安全防护モジュールは、正当な識別子(クライアントIPとUser-Agent)を持つリクエストを通過させます。
注意:
クライアントがJavaScriptチャレンジを頻繁に試行してブロックが発生した場合、クライアントはJavaScriptチャレンジの拒否リストに入ります。一定期間、セキュリティポリシーはこのクライアントに対してJSチャレンジを応答せず、直接ブロックページを応答します。このクライアントのアクセスを回復するには、防护例外规则を設定してください。