コンテンツにスキップ

シーケンスルール

シーケンスルール 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を介してシーケンスルールを有効にする

  1. まだ持っていない場合は、APIトークンを作成してください。APIトークンには、Zone > Fraud Detection > Edit の権限が含まれている必要があります。
  2. シーケンスルールを有効にしたいゾーンのゾーンIDを取得します。
  3. APIシールドのエンドポイント管理を使用して、シーケンスルールで追跡したいエンドポイントを追加し、ショートIDをメモしてください。
  1. 次のAPI呼び出しにAPIトークンとゾーンIDを追加して、シーケンスクッキーを有効にします。
API呼び出し
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}'
  1. カスタムルールレート制限ルール、または変換ルールを介して、シーケンスまたはタイミングに基づくルールを書くために、式エディタを使用します。これらのルールをログのみモードに設定して監視することができます。

シーケンスルールを有効にすると、ルールフィールドが入力され、新しいフィールドをルールで使用できるようになります。


ルールフィールド

シーケンスルールは、Cloudflareルールに3つの新しいフィールドを導入します。これらのフィールドはすべて、ショートIDによって操作を参照します。詐欺検出のサブスクリプションを持つアカウントは、CloudflareダッシュボードのAPIシールド > エンドポイント管理を介してエンドポイントの詳細を表示することでショートIDを参照できます。詐欺検出を持たないアカウントは、このフィールドにアクセスできません。

Cloudflareは、シーケンス内の最新の10件の操作を最大1時間まで保存します。シーケンス内に10件を超える操作がある場合、古い操作は削除され、次のフィールドには含まれません。同様に、操作が1時間以上前に発生した場合も、次のフィールドには含まれません。

利用可能性

これらのシーケンスフィールドは以下で利用可能です:

フィールド名説明例の値

cf.sequence.current_op
String

このフィールドには、現在のリクエストに一致する操作のIDが含まれています。現在のリクエストがエンドポイント管理で定義された操作に一致しない場合、空の文字列になります。

c821cc00

cf.sequence.previous_ops
Array<String>

このフィールドには、シーケンス内の以前の操作IDの配列が含まれており、最新から最も古い順に並んでいます。現在のリクエストは含まれません。

操作が繰り返されると、シーケンス内に複数回表示されます。

[“f54dac32”, “c821cc00”, “a37dc89b”]

cf.sequence.msec_since_op
Map<Number>

このフィールドには、キーが操作IDで、値がその操作が最近発生したミリ秒数のマップが含まれています。

これは、現在のリクエストや操作を含まず、シーケンス内の以前の操作のみを考慮します。

{"f54dac32": 1000, "c821cc00": 2000}

例のルール

顧客はエンドポイントAをエンドポイントBの前にリクエストする必要があります。

有効なシーケンス
cf.sequence.current_op eq "bbbbbbbb" and
any(cf.sequence.previous_ops[*] == "aaaaaaaa")
無効なシーケンス
cf.sequence.current_op eq "bbbbbbbb" and
not any(cf.sequence.previous_ops[*] == "aaaaaaaa")

顧客はエンドポイントAをエンドポイントBの少なくとも1秒前にリクエストする必要があります。

有効なシーケンス
cf.sequence.current_op eq "bbbbbbbb" and
cf.sequence.msec_since_op["aaaaaaaa"] ge 1000
無効なシーケンス
cf.sequence.current_op eq "bbbbbbbb" and
not cf.sequence.msec_since_op["aaaaaaaa"] ge 1000

APIを介してシーケンスルールを無効にする

シーケンスルールを無効にすると、ルールフィールドの入力が停止します。これらのフィールドに依存するルールがまだ展開されている場合、それらのルールは意図した通りに動作しない可能性があります。シーケンスフィールドに依存するルールを無効にする前に、削除または無効にしてください。

シーケンスルールを無効にするには:

  1. まだ持っていない場合は、APIトークンを作成してください。APIトークンには、Zone > Fraud Detection > Edit の権限が含まれている必要があります。
  2. シーケンスルールを無効にしたいゾーンのゾーンIDを取得します。
  3. APIシールドのエンドポイント管理を使用して、シーケンスルールで追跡したいエンドポイントを追加し、ショートIDをメモしてください。
  1. 次のAPI呼び出しでAPIトークン、ゾーンIDを使用し、enabledfalseに設定してシーケンスクッキーを無効にします。
API呼び出し
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リクエストのみをサポートしています。