シーケンスルール
シーケンスルール uses cookies to track the order of requests a user has made and the time between requests and makes them available via Cloudflare Rules. This allows you to write rules that match valid or invalid sequences. The specific cookies used to validate sequences are called sequence cookies.
シーケンスルールは現在プライベートベータ版です。ベータ版に参加したい場合は、アカウントチームに連絡してください。
- あなたのアカウントは、詐欺検出のサブスクリプションを持っている必要があります。
- 各ゾーンは、エンドポイント管理に依存しているため、APIシールドのサブスクリプションを持っている必要があります。
- 各ゾーンは、エンドポイント管理を通じて追跡するエンドポイントを設定する必要があります。
- まだ持っていない場合は、APIトークンを作成してください。APIトークンには、Zone > Fraud Detection > Edit の権限が含まれている必要があります。
- シーケンスルールを有効にしたいゾーンのゾーンIDを取得します。
- APIシールドのエンドポイント管理を使用して、シーケンスルールで追跡したいエンドポイントを追加し、ショートIDをメモしてください。
- 次のAPI呼び出しにAPIトークンとゾーンIDを追加して、シーケンスクッキーを有効にします。
curl --request PUT \https://api.cloudflare.com/client/v4/zones/{zone_id}/fraud_detection/sequence_cookies \--header "Authorization: Bearer <API_TOKEN>" \--header "Content-Type: application/json" \--data '{"enabled": true}'- カスタムルール、レート制限ルール、または変換ルールを介して、シーケンスまたはタイミングに基づくルールを書くために、式エディタを使用します。これらのルールをログのみモードに設定して監視することができます。
シーケンスルールを有効にすると、ルールフィールドが入力され、新しいフィールドをルールで使用できるようになります。
シーケンスルールは、Cloudflareルールに3つの新しいフィールドを導入します。これらのフィールドはすべて、ショートIDによって操作を参照します。詐欺検出のサブスクリプションを持つアカウントは、CloudflareダッシュボードのAPIシールド > エンドポイント管理を介してエンドポイントの詳細を表示することでショートIDを参照できます。詐欺検出を持たないアカウントは、このフィールドにアクセスできません。
Cloudflareは、シーケンス内の最新の10件の操作を最大1時間まで保存します。シーケンス内に10件を超える操作がある場合、古い操作は削除され、次のフィールドには含まれません。同様に、操作が1時間以上前に発生した場合も、次のフィールドには含まれません。
これらのシーケンスフィールドは以下で利用可能です:
- カスタムルール (
http_request_firewall_customフェーズ) - レート制限ルール (
http_request_ratelimit) - バルクリダイレクト (
http_request_redirect) - HTTPリクエストヘッダーの変更ルール (
http_request_late_transform)
| フィールド名 | 説明 | 例の値 |
|---|---|---|
| このフィールドには、現在のリクエストに一致する操作のIDが含まれています。現在のリクエストがエンドポイント管理で定義された操作に一致しない場合、空の文字列になります。 |
|
| このフィールドには、シーケンス内の以前の操作IDの配列が含まれており、最新から最も古い順に並んでいます。現在のリクエストは含まれません。 |
|
| このフィールドには、キーが操作IDで、値がその操作が最近発生したミリ秒数のマップが含まれています。 |
|
顧客はエンドポイントAをエンドポイントBの前にリクエストする必要があります。
cf.sequence.current_op eq "bbbbbbbb" andany(cf.sequence.previous_ops[*] == "aaaaaaaa")cf.sequence.current_op eq "bbbbbbbb" andnot any(cf.sequence.previous_ops[*] == "aaaaaaaa")顧客はエンドポイントAをエンドポイントBの少なくとも1秒前にリクエストする必要があります。
cf.sequence.current_op eq "bbbbbbbb" andcf.sequence.msec_since_op["aaaaaaaa"] ge 1000cf.sequence.current_op eq "bbbbbbbb" andnot cf.sequence.msec_since_op["aaaaaaaa"] ge 1000シーケンスルールを無効にすると、ルールフィールドの入力が停止します。これらのフィールドに依存するルールがまだ展開されている場合、それらのルールは意図した通りに動作しない可能性があります。シーケンスフィールドに依存するルールを無効にする前に、削除または無効にしてください。
シーケンスルールを無効にするには:
- まだ持っていない場合は、APIトークンを作成してください。APIトークンには、Zone > Fraud Detection > Edit の権限が含まれている必要があります。
- シーケンスルールを無効にしたいゾーンのゾーンIDを取得します。
- APIシールドのエンドポイント管理を使用して、シーケンスルールで追跡したいエンドポイントを追加し、ショートIDをメモしてください。
- 次のAPI呼び出しでAPIトークン、ゾーンIDを使用し、
enabledをfalseに設定してシーケンスクッキーを無効にします。
curl --request PUT https://api.cloudflare.com/client/v4/zones/{zone_id}/fraud_detection/sequence_cookies \--header "Authorization: Bearer <API_TOKEN>" \--data '{"enabled": false}'Cloudflareは、クッキーがSecure属性を設定しているため、HTTPSリクエストのみをサポートしています。