Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

シーケンスルール

最終更新 Markdown で表示Agent セットアップ

シーケンスルール は Cookie を使い、ユーザーが行ったリクエストの順序とリクエスト間の時間を追跡し、Cloudflare Rules から利用できるようにします。これにより、有効または無効なシーケンスに一致するルールを書けます。シーケンスの検証に使う Cookie をシーケンス Cookie と呼びます。

前提条件

  • アカウントに Fraud Detection のサブスクリプションが必要です。
  • 各ゾーンで、Endpoint Management により追跡するエンドポイントを設定する必要があります。

Cloudflare ダッシュボードでシーケンスのカスタムルールを作成する か、API で管理する ことができます。


利用可否

これらのシーケンスフィールドは、次で利用できます。

フィールド名説明値の例

cf.sequence.current_op
String

現在のリクエストに一致するオペレーションの ID です。Endpoint Management で定義したどのオペレーションにも一致しない場合は、空文字列になります。

c821cc00

cf.sequence.previous_ops
Array<String>

シーケンス内の直前までのオペレーション ID の配列です。新しい順に並びます。現在のリクエストは含まれません。

同じオペレーションが繰り返された場合は、シーケンス内に複数回現れます。

["f54dac32", "c821cc00", "a37dc89b"]

cf.sequence.msec_since_op
Map<Number>

キーがオペレーション ID、値がそのオペレーションが直近で発生してからのミリ秒数であるマップです。

現在のリクエストやオペレーションは含まれません。シーケンス内の以前のオペレーションだけを対象にします。

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


Cloudflare ダッシュボードでシーケンスのカスタムルールを作成する

  1. Cloudflare ダッシュボードで Security rules ページを開きます。

    Security rules を開く ↗
  2. 空のルールを新規作成するには、Create rule > Custom rules を選びます。

  3. Rule name に、ルールの内容が分かる名前を入力します。

  4. When incoming requests match で、Field のドロップダウンから Sequences で絞り込み、次のいずれかを選びます。

    • Current Operation
    • Previous Operations
    • Elapsed time
  5. Value で編集アイコンを選び、Builder を使ってサイドパネルでシーケンスを組み立てます。

  6. Select a hostname for this sequence で、ドロップダウンからすべて、または特定のホスト名を選びます。任意で、検索バーから特定のホスト名を検索できます。

  7. Methods のドロップダウンから、すべてのメソッド、または特定のリクエストメソッドを選びます。

  8. シーケンスに含めたい順に、各エンドポイントのチェックボックスを選びます。

  9. 完了までの時間を設定します。

  10. Save を選びます。

  11. Then take action で、Choose action のドロップダウンからルールのアクションを選びます。たとえば Block を選ぶと、指定した条件に一致するリクエストを Cloudflare が拒否します。

  12. (任意)Block アクションを選んだ場合は、カスタムレスポンスを設定できます。

  13. Place at で、ルールを実行する順序を選びます。

  14. ルールを保存してデプロイするには、Deploy を選びます。まだデプロイしない場合は、Save as Draft を選びます。


API でシーケンスルールを管理する

シーケンスルールを有効にする

  1. まだ持っていない場合は、API トークンを作成 します。API トークンには Zone > Fraud Detection > Edit 権限が必要です。
  2. シーケンスルールを有効にするゾーンの ゾーン ID を取得 します。
  3. API Shield の Endpoint Management で、シーケンスルールで追跡する エンドポイントを追加 し、short ID を控えます。
  4. 次の API 呼び出しに API トークンとゾーン ID を指定し、シーケンス Cookie を有効にします。
API 呼び出しbash
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. 式エディターで、シーケンスまたはタイミングに基づくルールを カスタムルールレート制限ルール、または 変換ルール として作成します。監視だけする場合は、ルールをログのみモードにできます。

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

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

シーケンスルールを無効にすると、ルールフィールドへの入力が止まります。これらのフィールドに依存するルールがまだデプロイされていると、意図どおりに動作しないことがあります。シーケンスルールを無効にする前に、シーケンスフィールドに依存するルールを削除または無効にしてください。

シーケンスルールを無効にする手順は次のとおりです。

  1. まだ持っていない場合は、API トークンを作成 します。API トークンには Zone > Fraud Detection > Edit 権限が必要です。
  2. シーケンスルールを無効にするゾーンの ゾーン ID を取得 します。
  3. API Shield の Endpoint Management で、シーケンスルールで追跡する エンドポイントを追加 し、short ID を控えます。
  4. API トークンとゾーン ID を使い、次の API 呼び出しで enabledfalse にして、シーケンス Cookie を無効にします。
API 呼び出しbash
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 Rules に 3 つの新しいフィールドを追加します。これらのフィールドはすべて、オペレーションを short ID で参照します。Fraud Detection のサブスクリプションがあるアカウントは、Cloudflare ダッシュボードの API Shield > Endpoint Management でエンドポイントの詳細を開き、short ID を確認できます。Fraud Detection がないアカウントは、このフィールドにアクセスできません。

Cloudflare は、シーケンス内の直近 10 件までのオペレーションを、最大 1 時間保存します。シーケンスに 10 件を超えるオペレーションがある場合、古いオペレーションは破棄され、次のフィールドには含まれません。同様に、1 時間以上前のオペレーションも、次のフィールドには含まれません。

ルールの例

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

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

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

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

制限

Cookie に Secure 属性を設定するため、Cloudflare がサポートするのは HTTPS リクエストだけです。


利用可否

シーケンスルールは現在、プライベートベータです。ベータに参加したい場合は、アカウントチームに連絡してください。

役に立ちましたか?