コンテンツにスキップ

レート制限パラメータ

利用可能なレート制限ルールのパラメータは、以下のセクションで説明されています。

パラメータ参照

受信リクエストが一致する場合

  • データ型: String
  • API内のフィールド名: expression (ルールフィールド)。

レート制限ルールがリクエストに一致するための基準を定義します。

キャッシュされたアセットにもレート制限を適用

  • データ型: Boolean
  • API内のフィールド名: requests_to_origin (オプション、Cloudflareダッシュボードオプションの逆の意味)。

このパラメータが無効にされている場合(またはrequests_to_origin APIフィールドがtrueに設定されている場合)、オリジンに送信されるリクエスト(つまり、キャッシュされていないリクエスト)のみがリクエストレートを決定する際に考慮されます。

構成制限により、キャッシュされたアセットにもレート制限を適用パラメータを無効にできない場合があります。詳細については構成制限を参照してください。

同じ特性で

  • データ型: Array<String>
  • API内のフィールド名: characteristics

Cloudflareがルールのリクエストレートを追跡する方法を定義するパラメータのセット。

以下の特性の1つ以上を使用します:

ダッシュボード値API値ノート
N/A(暗黙的に含まれる)cf.colo.id(必須)式で使用しない
IPip.srcNATサポート付きIPと互換性がない
NATサポート付きIPcf.unique_visitor_idIPと互換性がない
ヘッダー値の(ヘッダー名を入力)http.request.headers["<header_name>"]APIで小文字のヘッダー名を使用および欠落フィールドと空の値
クッキー値の(クッキー名を入力)http.request.cookies["<cookie_name>"]クッキー値の使用時の推奨構成および欠落フィールドと空の値
クエリ値の(パラメータ名を入力)http.request.uri.args["<query_param_name>"]欠落フィールドと空の値
ホストhttp.host
パスhttp.request.uri.path
AS番号ip.geoip.asnum
ip.geoip.country
JA3フィンガープリントcf.bot_management.ja3_hash
JA4cf.bot_management.ja4
JSON文字列値の(キーを入力)lookup_json_string(http.request.body.raw, "<key>")欠落フィールドと空の値およびlookup_json_string()関数リファレンス
JSON整数値の(キーを入力)lookup_json_integer(http.request.body.raw, "<key>")欠落フィールドと空の値およびlookup_json_integer()関数リファレンス
フォーム入力値の(フィールド名を入力)http.request.body.form["<input_field_name>"]欠落フィールドと空の値
JWTクレームの(トークン構成ID、クレーム名を入力)lookup_json_string(http.request.jwt.claims["<token_configuration_id>"][0], "<claim_name>")欠落フィールドと空の値およびJWT検証リファレンス
ボディhttp.request.body.raw
ボディサイズ(演算子を選択、サイズを入力)http.request.body.size
カスタム(式を入力)カスタム式を入力します。substring()lower()などの関数を使用するか、より複雑な式を入力できます。関数

利用可能な特性は、Cloudflareプランによって異なります。詳細については可用性を参照してください。

カウントを増やす条件

  • データ型: String
  • API内のフィールド名: counting_expression (オプション)。

カスタムカウント式を使用を有効にした場合にのみ、Cloudflareダッシュボードで利用可能です。

リクエストレートを決定するために使用される基準を定義します。デフォルトでは、カウント式はルール一致式(受信リクエストが一致する場合で定義)と同じです。このデフォルトは、このフィールドを空の文字列("")に設定した場合にも適用されます。

カウント式にはHTTPレスポンスフィールドを含めることができます。カウント式にレスポンスフィールドが含まれている場合、レスポンスが送信された後にカウントが行われます。

構成制限により、カウント式にHTTPレスポンスフィールドを含めることができない場合があります。詳細については構成制限を参照してください。

レートが超過した場合 > リクエスト

  • データ型: Integer
  • API内のフィールド名: requests_per_period

ルールをトリガーする時間の期間におけるリクエストの数。

レートが超過した場合 > 期間

  • データ型: Integer
  • API内のフィールド名: period

リクエストレートを評価する際に考慮する時間の期間(秒単位)。利用可能な値はCloudflareプランによって異なります

利用可能なAPI値は、1060(1分)、120(2分)、300(5分)、600(10分)、または3600(1時間)です。

その後のアクション

  • データ型: String
  • API内のフィールド名: action (ルールフィールド)。

ルールで指定されたレートに達したときに実行するアクション。

APIで使用する値の1つを選択します: blockchallengejs_challengemanaged_challenge、またはlog

_ブロック_アクションを選択した場合、次のパラメータを使用してカスタムレスポンスを定義できます:

レスポンスタイプ(_ブロック_アクション用)

  • データ型: String
  • API内のフィールド名: response > content_type (オプション)。

レート制限によりリクエストをブロックする際のカスタムレスポンスのコンテンツタイプを定義します。これは、ルールアクションを_ブロック_に設定した場合にのみ利用可能です。

利用可能なAPI値: application/jsontext/htmltext/xml、またはtext/plain

レスポンスコード(_ブロック_アクション用)

  • データ型: Integer
  • API内のフィールド名: response > status_code (オプション)。

レート制限によりリクエストをブロックする際に訪問者に返されるHTTPステータスコードを定義します。これは、ルールアクションを_ブロック_に設定した場合にのみ利用可能です。

400から499の間の値を入力する必要があります。デフォルト値は429リクエストが多すぎます)です。

レスポンスボディ(_ブロック_アクション用)

  • データ型: String
  • API内のフィールド名: response > content (オプション)。

レート制限によりリクエストがブロックされた際に返されるHTTPレスポンスのボディを定義します。これは、ルールアクションを_ブロック_に設定した場合にのみ利用可能です。

最大フィールドサイズは30 KBです。

期間

  • データ型: Integer
  • API内のフィールド名: mitigation_timeout

レートに達した後、このフィールドで定義された期間(秒単位)にわたって、レート制限ルールはさらなるリクエストにルールアクションを適用します。

ダッシュボードでは、Cloudflareプランによって異なる利用可能な値の1つを選択します。利用可能なAPI値は、01060(1分)、120(2分)、300(5分)、600(10分)、3600(1時間)、または86400(1日)です。

無料、プロ、ビジネスプランの顧客は、チャレンジアクションを使用する際に期間を選択できません。これらのアクションに対しては、レート制限ルールは常にリクエストスロットリングを実行します。リクエストスロットリングでは、期間を定義しません。訪問者がチャレンジを通過すると、対応するリクエストカウンターはゼロにリセットされます。同じルール特性の値を持つ訪問者がレート制限ルールを再度トリガーするのに十分なリクエストを行うと、新しいチャレンジが表示されます。

エンタープライズ顧客は、チャレンジアクションのいずれかを使用している場合でも、常に期間(または緩和タイムアウト)を設定できます。

次の動作で

  • データ型: Integer
  • API内のフィールド名: mitigation_timeout

選択したアクションの正確な動作を定義します。

アクションの動作は次のいずれかです:

  • 選択した期間中にアクションを実行: 選択した期間中に受信したすべてのリクエストに対して構成されたアクションを適用します。この動作をAPI経由で構成するには、mitigation_timeoutをゼロより大きい値に設定します。詳細については、For durationを参照してください。

    緩和期間全体にアクションを適用するように構成されたレート制限ルールのアクションを表示するチャート

  • 最大構成レートを超えるリクエストを制限: 構成された制限を超える受信リクエストに対して選択したアクションを適用し、他のリクエストを許可します。この動作をAPI経由で構成するには、mitigation_timeout0(ゼロ)に設定します。

    構成された制限を超えるリクエストを制限するように構成されたレート制限の動作を表示するチャート

レート制限の特性に関する注意事項

NATサポート付きIPのユースケース

NATサポート付きIPを使用して、同じIPアドレスを共有するNAT下のリクエストなどの状況を処理します。Cloudflareは、ユニークな訪問者を特定するために、セッションCookieの使用を含むさまざまなプライバシー保護技術を使用しています。詳細については、Cloudflare Cookiesを参照してください。

互換性のない特性

NATサポート付きIPIPの両方を同じレート制限ルールの特性として使用することはできません。

式のフィールドとしてcf.colo.idを使用しない

cf.colo.id特性(データセンターID)をルール式のフィールドとして使用しないでください。さらに、cf.colo.idの値は予告なしに変更される可能性があります。このレート制限特性に関する詳細については、Cloudflareがリクエストレートを決定する方法を参照してください。

小文字のヘッダー名を使用する(APIユーザー向け)

APIリクエストでHeader value of特性を使用する場合(http.request.headers["<header_name>"]を使用)、ヘッダー名は小文字で入力する必要があります。Cloudflareは、Cloudflareグローバルネットワーク上でヘッダー名を正規化します。

欠落フィールドと空の値

Header value ofCookie value ofQuery value ofJSON string value oflookup_json_integer(...)、またはForm input value of特性を使用し、特定のヘッダー/クッキー/パラメーター/JSONキー/フォームフィールド名がリクエストに存在しない場合、レート制限ルールはリクエストに適用される可能性があります。これは、カウント式に依存します。

そのようなリクエストをフィルタリングしない場合、フィールドが存在しないリクエストのための特定のリクエストカウンターがあり、フィールドが空の値で存在するリクエストのリクエストカウンターとは異なります。

たとえば、特定のレート制限ルールのコンテキストで特定のHTTPヘッダーが存在するリクエストのみを考慮するには、ルールのカウント式を次のように調整します:

and len(http.request.headers["<header_name>"]) > 0

ここで、<header_name>はレート制限特性として使用される同じヘッダー名です。

Cookie value ofをレート制限ルールの特性として使用する場合、次の推奨事項に従ってください:

  • クッキーの値が複数あるリクエストをブロックするカスタムルールを作成します。
  • サーバーの負荷のかかる操作を実行する前に、オリジンでクッキーの値を検証します。

構成制限

  • ルール式にIPリストが含まれている場合、キャッシュされたアセットにもレート制限を適用パラメーターを有効にする必要があります。

  • Increment counter whenパラメーターで定義されたルールカウント式には、HTTPレスポンスフィールドIPリストの両方を含めることはできません。IPリストを使用する場合、キャッシュされたアセットにもレート制限を適用パラメーターを有効にする必要があります。