Web侵入防御、データセキュリティ、ボット管理、アクセス制御またはスロットリング、Webサイトホワイトリストモジュールなど、Webアプリケーションファイアウォール(WAF)の特定の保護モジュールに設定されているルールを照会します。
使用上の注意
DescribeProtectionModuleRules操作を呼び出して、特定のWAF保護モジュールで構成されているルールのページクエリを実行できます。 保護モジュールには、web侵入防止、データセキュリティ、ボット管理、アクセス制御またはスロットリング、webサイトのホワイトリストが含まれます。
DefenseTypeパラメーターを設定して、保護モジュールを指定できます。 このパラメーターの値の詳細については、DefenseTypeパラメーターの説明をご参照ください。
制限事項
この操作は、アカウントごとに1秒あたり最大50回呼び出すことができます。 1秒あたりの呼び出し数が制限を超えると、スロットリングがトリガーされます。 その結果、あなたのビジネスが影響を受ける可能性があります。 この操作を呼び出すときは、制限に注意することをお勧めします。
デバッグ
リクエストパラメーター
パラメーター | データ型 | 必須/任意 | 例 | 説明 |
操作 | String | 必須 | DescribeProtectionModuleRules | 実行する操作です。 値をDescribeProtectionModuleRulesに設定します。 |
PageSize | Integer | 任意 | 10 | 各ページで返されるエントリ数。 デフォルト値: 10 |
PageNumber | Integer | 任意 | 1 | 返されるページ数。 既定値:1 |
ドメイン | String | 任意 | www.aliyundoc.com | 照会するドメイン名。
|
DefenseType | String | 必須 | ac_highfreq | ルールを照会する保護機能のタイプ。 設定可能な値は以下のとおりです。
|
クエリ | String | 任意 | e2ZpbHRlcjp7InJ1bGVJZCI6NDI3NTV9LG9yZGVyQnk6ImdtdF9tb2RpZmllZCIsZGVzYzp0cnVlfQ== | ルールのフィルタリングとソートに使用されるメソッド。 値は、次のパラメーターを含むJSON文字列です。 説明 Queryパラメーターの値をBase64-encodedする必要があります。
|
Lang | String | 任意 | zh | ルール名の言語。 設定可能な値は以下のとおりです。
|
InstanceId | String | 必須 | waf_elasticity-cn-0xldbqt **** | WAFインスタンスのID。 説明 DescribeInstanceInfo操作を呼び出して、WAFインスタンスのIDを照会できます。 |
ResourceGroupId | String | 任意 | rg-acfm2pz25js **** | リソース管理のWAFインスタンスが属するリソースグループのID。 このパラメーターを指定しない場合、WAFインスタンスはデフォルトリソースグループに属します。 |
すべてのAlibaba Cloud API操作に共通のリクエストパラメーターを含める必要があります。 共通リクエストパラメーターの詳細については、「共通パラメーター」をご参照ください。
サンプルリクエストの詳細については、このトピックの「例」を参照してください。
レスポンスパラメーター
パラメーター | データ型 | 例 | 説明 |
TotalCount | Integer | 1 | 返されたエントリの総数。 |
RequestId | String | D7861F61-5B61-46CE-A47C-6B19160D5EB0 | リクエストの ID です。 |
Rules | ルールの配列 | ルールID、作成時刻、ステータスなど、ルールの設定。 | |
ステータス | Long | 1 | ルールのステータス。 設定可能な値は以下のとおりです。
|
時刻 | Long | 1570700044 | ルールが作成された時刻。 この値はUNIXタイムスタンプです。 (単位:秒) |
Content | Map | ルールの内容。 この値は、複数のパラメーターを含むJSON文字列です。 説明 パラメーターは、DefenseTypeパラメーターの値によって異なります。 詳細については、「コンテンツパラメーターの説明」をご参照ください。 | |
Version | Long | 2 | ルールのバージョン。 |
RuleId | Long | 42755 | ルールの ID。 |
Contentパラメーターの説明
- DefenseTypeパラメーターがwaf-codecに設定されている場合、Contentパラメーターの値には次のパラメーターが含まれます。
- codecList: 有効なデコード項目。 このパラメーターは必須です。 データ型: 文字列。
- 例
{ "codecList":["url","base64"] }
- DefenseTypeパラメータ tamperproof, Content パラメータの値には、以下のパラメータが含まれます:
- uri: 保護が必要なURL。 データ型: 文字列。 このパラメーターは必須です。 データ型: 文字列。
- name: ルールの名前。 このパラメーターは必須です。 データ型: 文字列。
- status: ルールのステータス。 このパラメーターはオプションです。 データ型: 整数。 設定可能な値は以下のとおりです。
- 0: disabled. デフォルト値です。
- 1: enabled.
- 例
{ "name":"example" 、 "uri":"http://www.example.com/example" 、 "status":1 }
- DefenseTypeパラメーターがdIpに設定されている場合、Contentパラメーターの値には次のパラメーターが含まれます。
- name: ルールの名前。 このパラメーターは必須です。 データ型: 文字列。
- conditions: 一致する条件。JSON文字列で定式化されています。 最大2つの条件を指定できます。 2つの条件は論理ANDを使用する。 このパラメーターは必須です。 データ型: 配列。 JSON文字列には、次のパラメーターが含まれます。
- key: 一致するアイテム。 設定可能な値は以下のとおりです。
- 0: URL
- 10: 機密データ
- 11: HTTPステータスコード
- operation: マッチングロジック。 この値は1として固定され、INCLUDESの論理関係を示します。
- value: 一致する値で、JSON文字列で定式化されます。 複数の値を指定できます。 JSON文字列には、次のパラメーターが含まれます。
- v: このパラメーターは、keyパラメーターが0または11に設定されている場合にのみ有効です。
- URL:
key
パラメーターが0に設定されている場合、vパラメーターの値はURLです。 - HTTPステータスコード:
key
パラメーターが11に設定されている場合、vパラメーターの有効な値は400、401、402、403、404、405〜499、500、501、502、503、504、505〜599です。
- URL:
- k: このパラメーターは、keyパラメーターが10に設定されている場合にのみ有効です。 設定可能な値は以下のとおりです。
- 100: IDカード番号
- 101: クレジットカード番号
- 102: 電話番号
- 103: デフォルトの機密単語
- v: このパラメーターは、keyパラメーターが0または11に設定されている場合にのみ有効です。
- key: 一致するアイテム。 設定可能な値は以下のとおりです。
- action: ルールが一致した後に実行されるアクション
- 3: アラートを生成します。
- 10: 機密データをフィルタリングします。 この操作は、
key
パラメーターが10に設定されている場合にのみ有効です。 - 11: システムの組み込みブロックページを返します。 この操作は、
key
パラメーターが11に設定されている場合にのみ有効です。
- 例
{ "name":"example" 、"conditions":[{"key":11,"operation":1,"value":[{"v":401}]}},{"key":"0","operation":1,"value":[{"v":"www.example.com"}]}] 、"アクション":3 }
- DefenseTypeパラメーターがng_accountに設定されている場合、Contentパラメーターの値には次のパラメーターが含まれます。
- domain: WAFによって保護されているドメイン名。 このパラメーターは必須です。 データ型: 文字列。
- method: リクエストのメソッド。 このパラメーターは必須です。 データ型: 文字列。 有効な値: POST、GET、PUT、およびDELETE。 複数のリクエストメソッドを指定できます。 リクエストメソッドはコンマ (,) で区切ります。
- url_path: 検出されたリクエストのURLパス。 パスはスラッシュ (/) で始まる必要があります。 このパラメーターは必須です。 Data type: string.
- account_left: アカウント。 このパラメーターは必須です。 データ型: 文字列。
- password_left: パスワード。 このパラメーターはオプションです。 データ型: 文字列。
- action: ルールが一致した後に実行されるアクション。 このパラメーターは必須です。 データ型: 文字列。 設定可能な値は以下のとおりです。
- monitor: アラートを生成します。
- block: リクエストをブロックします。
- 例
{ "domain":"www.example.com" 、 "method":"GET、POST" 、 "url_path":"/example" 、 "account_left":"aaa" 、 "アクション":"モニター" }
- DefenseTypeパラメーターがbot_crawlerに設定されている場合、Contentパラメーターの値には次のパラメーターが含まれます。
- ステータス: ルールのステータス。 このパラメーターは必須です。 データ型: 整数。 設定可能な値は以下のとおりです。
- 0:無効
- 1:有効
- Version: ルールのバージョン。 このパラメーターは必須です。 データ型: 整数。
- Content: ルールの詳細。 このパラメーターは必須です。 データ型: 文字列。 値は、次のパラメーターを含むJSON文字列です。
- name: ルールの名前。 このパラメーターは必須です。 データ型: 文字列。
- conditions: 保護されているURLパスの条件。 このパラメーターはオプションです。 データ型: 配列。 DefenseTypeパラメーターがbot_crawlerに設定されている場合、条件パラメーターの値は空に固定されます。これは、すべてのURLパスが保護されていることを示します。
- 表現: 条件式のルール。 式は、ルールのすべての条件を表します。 このパラメーターは必須です。 データ型: 配列。
- bypassTags: リクエストを検出しない保護モジュール。 このパラメーターは必須です。 データ型: 文字列。 DefenseTypeパラメーターがbot_crawlerに設定されている場合、bypassTagsパラメーターの値はantibotに固定されます。これはボット管理モジュールを示します。
- tags: ルールが属する保護モジュール。 このパラメータは必須です。 データ型: 配列。 DefenseTypeパラメーターがbot_crawlerに設定されている場合、tagsパラメーターの値は
["antibot"]
に固定されます。これはボット管理モジュールを示します。
- RuleId: ルールのID。 このパラメーターは必須です。 データ型: 整数。
- Time: ルールが最後に変更されたときのUNIXタイムスタンプ。 (単位:秒) このパラメーターは必須です。 データ型: 文字列。
- 例
{ "ステータス":0、 "バージョン":1、 "コンテンツ":{ "name":"Baidu Spiderホワイトリスト" 、 "conditions":[], "expressions":["remote_addr inl 'ioc.210d077a-cf34-49ad-a9b3-0aa48095c595 ' && uri =^'/'"] 、 "bypassTags":"antibot" 、 "tags":["antibot"] }, "RuleId":20384、「時間」: 1585818161 }
- ステータス: ルールのステータス。 このパラメーターは必須です。 データ型: 整数。 設定可能な値は以下のとおりです。
- DefenseTypeパラメーターがbot_intelligenceに設定されている場合、Contentパラメーターの値には次のパラメーターが含まれます。
- ステータス: ルールのステータス。 このパラメーターは必須です。 データ型: 整数。 設定可能な値は以下のとおりです。
- 0:無効
- 1:有効
- Version: ルールのバージョン。 このパラメーターは必須です。 データ型: 整数。
- Content: ルールの詳細。 このパラメーターは必須です。 データ型: 文字列。 値は、次のパラメーターを含むJSON文字列です。
- name: ルールの名前。 このパラメーターは必須です。 データ型: 文字列。
- action: ルールが一致した後に実行されるアクション。 このパラメーターは必須です。 Data type: string. 設定可能な値は以下のとおりです。
- monitor: リクエストを監視します。
- captcha: スライダーCAPTCHA検証を実行します。
- captcha_strict: 厳密なスライダーCAPTCHA検証を実行します。
- js: JavaScript検証を実行します。
- block: リクエストをブロックします。
- urlList: 保護が必要なURLパス。 最大10個のURLパスを指定できます。 このパラメーターは必須です。 データ型: 配列。 値は、次のパラメーターを含むJSON文字列です。
- mode: マッチング方法。 このパラメーターは必須です。 データ型: 文字列。 このパラメーターは、URLパラメーターと組み合わせてurlパスを指定します。 有効な値: eq (完全一致) 、prefix-match (prefix match) 、およびregex (正規表現一致) 。
- url: URLパスのキーワード。 パスはスラッシュ (/) で始まる必要があります。 このパラメーターは必須です。 データ型: 文字列。
- keyType: インテリジェンスライブラリのタイプ。 有効な値: IP (IPアドレスライブラリ) およびua (指紋ライブラリ) 。
- RuleId: ルールのID。 このパラメーターは必須です。 データ型: 整数。
- Time: ルールが最後に変更されたときのUNIXタイムスタンプ。 (単位:秒) このパラメーターは必須です。 データ型: 文字列。
- 例
{ "ステータス":1、 "Version":1, "コンテンツ":{ "name":"IDC IPアドレスライブラリ-Tencent Cloud" 、 "action":"captcha_strict" 、 "urlList":[{"mode":"prefix-match" 、"url":"/indexa"} 、{"mode":"regex" 、"url":"/" },{ "mode":"eq" 、"url":"/"}] 、 "keyType":"ip" }, "RuleId":922777、 "Time":1585907112 }
- ステータス: ルールのステータス。 このパラメーターは必須です。 データ型: 整数。 設定可能な値は以下のとおりです。
- DefenseTypeパラメーターが不正行為防止に設定されている場合、Contentパラメーターの値には次のパラメーターが含まれます。
- uri: リクエストされたURL。 このパラメーターは必須です。 データ型: 文字列。
- 例
{ "uri": "http://1.example.com/example" }
- DefenseTypeパラメーターがantifraf_jsに設定されている場合、Contentパラメーターの値には次のパラメーターが含まれます。
- uri: データリスク管理用のJavaScriptプラグインが挿入されているwebページのURLパス。 パスはスラッシュ (/) で始まる必要があります。 指定されたURLパスのすべてのページにJavaScriptプラグインが挿入されます。 このパラメーターは必須です。 データ型: 文字列。
- 例
{ "uri": "/example/example" }
- DefenseTypeパラメーターがbot_algorithmに設定されている場合、Contentパラメーターの値には次のパラメーターが含まれます。
- ステータス: ルールのステータス。 このパラメーターは必須です。 データ型: 整数。 設定可能な値は以下のとおりです。
- 0:無効
- 1:有効
- Version: ルールのバージョン。 このパラメーターは必須です。 データ型: 整数。
- Content: ルールの詳細。 このパラメーターは必須です。 データ型: 文字列。 値は、次のパラメーターを含むJSON文字列です。
- name: ルールの名前。 このパラメーターは必須です。 データ型: 文字列。
- timeInterval: 検出の間隔。 このパラメーターは必須です。 データ型: 整数。 有効な値: 30、60、120、300、600 (単位:秒)
- action: ルールが一致した後に実行されるアクション。 このパラメーターは必須です。 データ型: 文字列。 設定可能な値は以下のとおりです。
- monitor: リクエストを監視します。
- captcha: スライダーCAPTCHA検証を実行します。
- js: performs JavaScript verification.
- block: リクエストをブロックします。 パラメータをブロックに設定した場合は、さらに blocktime パラメータを使用します。
- blocktime: リクエストがブロックされる期間。 このパラメーターはオプションです。 データ型: 整数。 有効な値: 1 ~ 600 単位: 分。
- algorithmName: アルゴリズムの名前。 このパラメータは必須です。 データ型: 文字列。 設定可能な値は以下のとおりです。
- RR: 特定のリソースクローラーを識別するために使用されるアルゴリズム
- PR: 特定のパスクローラーを識別するために使用されるアルゴリズム
- DPR: パラメーターのラウンドロビンクローラーを識別するために使用されるアルゴリズム
- SR: 動的IPアドレスクローラーを識別するために使用されるアルゴリズム
- IND: プロキシデバイスクローラーを識別するために使用されるアルゴリズム
- Periodicity: 周期的なクローラーを識別するために使用されるアルゴリズム
- config: アルゴリズムの設定。JSON文字列で定式化されています。 このパラメーターは必須です。 データ型: 文字列 の値に応じて、JSON文字列に含まれるパラメータが変化します。 algorithmName パラメータ。
- algorithmName パラメータに RR, config パラメータの値には、以下のパラメータが含まれます。:
- resourceType: 要求されたリソースのタイプ。 このパラメーターはオプションです。 Data type: integer. 設定可能な値は以下のとおりです。
- 1: dynamic resources.
- 2: 静的リソース。
- -1: カスタムリソース。 この場合、extensionsパラメーターを使用して、文字列でリソースサフィックスを指定する必要もあります。 サフィックスはコンマ (,) で区切ります。 例:
css,jpg,xls
- minRequestCountPerIp: IPアドレスからのリクエストの最小数。 システムは、このIPアドレスからの要求の数がこのパラメータの値以上である場合にのみ、IPアドレスを検出します。 このパラメーターは必須です。 データ型: 整数。 有効な値: 5 ~ 10000
- minRatio: IPアドレスから開始されたリクエストに対する、指定されたタイプのリソースにアクセスするリクエストの割合のしきい値。 この閾値は、リスクが存在するか否かを判定する。 実際の割合がしきい値よりも大きい場合、リスクが存在します。 このパラメーターは必須です。 データ型: float。 有効な値: 1に0.01ます。
- resourceType: 要求されたリソースのタイプ。 このパラメーターはオプションです。 Data type: integer. 設定可能な値は以下のとおりです。
- algorithmNameパラメーターをPRに設定した場合、configパラメーターの値には次のパラメーターが含まれます。
- keyPathConfiguration: リクエストされたURLパス。 最大10個のURLパスを指定できます。 このパラメーターは、algorithmNameパラメーターがPRに設定されている場合にのみ必要です。 このパラメーターはオプションです。 データ型: 配列。 このパラメーターは、次のパラメーターを含むJSON文字列です。
- method: リクエストメソッド。 このパラメーターは必須です。 データ型: 文字列。 有効な値: POST、GET、PUT、DELETE、HEAD、OPTIONS。
- url: URLパスのキーワード。 パスはスラッシュ (/) で始まる必要があります。 このパラメーターは必須です。 データ型: 文字列。
- matchType: 一致するメソッド。 このパラメーターは、URLパラメーターと組み合わせて、要求されたurlパスを指定します。 このパラメーターは必須です。 データ型: 文字列。 有効な値: all (完全一致) 、prefix (prefix match) 、およびregex (正規表現一致) 。
- minRequestCountPerIp: IPアドレスからのリクエストの最小数。 システムは、このIPアドレスからの要求の数がこのパラメータの値以上である場合にのみ、IPアドレスを検出します。 このパラメーターは必須です。 データ型: 整数。 有効な値: 5 ~ 10000
- minRatio: IPアドレスから開始されたリクエストに対する、指定されたURLパスにアクセスするリクエストの割合のしきい値。 この閾値は、リスクが存在するか否かを判定する。 実際の割合がしきい値よりも大きい場合、リスクが存在します。 このパラメーターは必須です。 データ型: float。 有効な値: 1に0.01ます。
- keyPathConfiguration: リクエストされたURLパス。 最大10個のURLパスを指定できます。 このパラメーターは、algorithmNameパラメーターがPRに設定されている場合にのみ必要です。 このパラメーターはオプションです。 データ型: 配列。 このパラメーターは、次のパラメーターを含むJSON文字列です。
- algorithmNameパラメーターをDPRに設定した場合、configパラメーターの値には次のパラメーターが含まれます。
- method: リクエストメソッド。 このパラメーターは必須です。 Data type: string. 有効な値: POST、GET、PUT、DELETE、HEAD、OPTIONS。
- urlPattern: the path of key parameters. パスはスラッシュ (/) で始まる必要があります。 このパラメーターは必須です。 データ型: 文字列。 複数のキーパラメーターを指定し、各パラメーターを中かっこ {} のペアで囲むことができます。 例:
/company/{}/{}/{}/user.php?uid ={}
- minRequestCountPerIp: IPアドレスからのリクエストの最小数。 システムは、このIPアドレスからの要求の数がこのパラメータの値以上である場合にのみ、IPアドレスを検出します。 このパラメーターは必須です。 データ型: 整数。 有効な値: 5 ~ 10000
- minRatio: IPアドレスから開始されたリクエストに対する、指定されたキーパラメーターを使用するリクエストの割合のしきい値。 この閾値は、リスクが存在するか否かを判定する。 実際の割合がしきい値よりも大きい場合、リスクが存在します。 このパラメーターは必須です。 データ型: float。 有効な値: 1に0.01ます。
- algorithmNameパラメーターをSRに設定した場合、configパラメーターの値には次のパラメーターが含まれます。
- maxRequestCountPerSrSession: 各セッションのリクエストの最小数。 1つのセッション内のリクエスト数がこのパラメーターの値より小さい場合、セッションは異常と見なされます。 このパラメーターは必須です。 データ型: 整数。 有効値: 1~8。
- minSrSessionCountPerIp: IPアドレスから開始されるリクエストの異常セッション数のしきい値。 しきい値は、リスクが存在するかどうかを判断するために使用されます。 実際の数がしきい値より大きい場合、リスクが存在します。 このパラメーターは必須です。 データ型: 整数。 有効な値: 5 ~ 300
- algorithmNameパラメーターをINDに設定した場合、configパラメーターの値には次のパラメーターが含まれます。
- minIpCount: Wi-Fi接続デバイスがアクセスするIPアドレス数のしきい値。 このパラメーターは、悪意のあるデバイスを特定するための条件を指定します。 実際の数がしきい値より大きい場合、リスクが存在します。 このパラメーターは必須です。 データ型: 整数。 有効な値: 5 ~ 500
- keyPathConfiguration: リクエストされたURLパス。 最大10個のURLパスを指定できます。 このパラメーターはオプションです。 データ型: 配列。 このパラメーターは、次のパラメーターを含むJSON文字列です。
- method: リクエストメソッド。 このパラメーターは必須です。 データ型: 文字列。 有効な値: POST、GET、PUT、DELETE、HEAD、OPTIONS。
- url: URLパスのキーワード。 パスはスラッシュ (/) で始まる必要があります。 このパラメーターは必須です。 データ型: 文字列。
- matchType: 一致するメソッド。 このパラメーターは、URLパラメーターと組み合わせて、要求されたurlパスを指定します。 このパラメーターは必須です。 データ型: 文字列。 有効な値: all (完全一致) 、prefix (prefix match) 、およびregex (正規表現一致) 。
- algorymNameパラメーターをPeriodicityに設定した場合、configパラメーターの値には次のパラメーターが含まれます。
- minRequestCountPerIp: IPアドレスからのリクエストの最小数。 システムは、このIPアドレスからの要求の数がこのパラメータの値以上である場合にのみ、IPアドレスを検出します。 このパラメーターは必須です。 データ型: 整数。 有効な値: 5 ~ 10000
- level: リスクレベル。これは、IPアドレスからの定期的なアクセスの自明性の程度です。 このパラメーターは必須です。 データ型: 整数。 設定可能な値は以下のとおりです。
- 0: 明らか
- 1: 中程度
- 2: 弱い
- algorithmName パラメータに RR, config パラメータの値には、以下のパラメータが含まれます。:
- RuleId: ルールのID。 このパラメーターは必須です。 データ型: 整数。
- Time: ルールが最後に変更されたときのUNIXタイムスタンプ。 (単位:秒) このパラメーターは必須です。 Data type: string.
- 例
{ "Status":1, "バージョン":1、 "コンテンツ":{ "name":"ダイナミックIPアドレス" 、 "timeInterval":60, "action":"warn", "algorithmName":"IND" 、 "config":{"minIpCount":5,"keyPathConfiguration":[{"method":"GET","matchType":"prefix","url":"/index"}]} }, "RuleId":940180、 「時間」: 1585832957 }
- ステータス: ルールのステータス。 このパラメーターは必須です。 データ型: 整数。 設定可能な値は以下のとおりです。
- DefenseTypeパラメーターがbot_wxbb_pkgに設定されている場合、Contentパラメーターの値には次のパラメーターが含まれます。
- Version: ルールのバージョン。 このパラメーターは必須です。 データ型: 整数。
- Content: ルールの詳細。 このパラメーターは必須です。 Data type: string. 値は、次のパラメーターを含むJSON文字列です。
- name: ルールの名前。 このパラメーターは必須です。 データ型: 文字列。
- action: ルールが一致した後に実行されるアクション。 このパラメーターは必須です。 データ型: 文字列。 設定可能な値は以下のとおりです。
- test: リクエストを監視します。
- close: リクエストをブロックします。
- nameList: 有効なパッケージのバージョン情報。 最大5つの有効なパッケージのバージョン情報を指定できます。 このパラメーターは必須です。 データ型: 配列。 値は、次のパラメーターを含むJSON文字列です。
- name: 有効なパッケージの名前。 このパラメーターは必須です。 データ型: 文字列。
- signList: パッケージの署名。 最大15個の署名を指定できます。 複数ある場合、コンマ (,) で区切ります。 このパラメーターは必須です。 データ型: 配列。
- RuleId: ルールのID。 このパラメーターは必須です。 データ型: 整数。
- Time: ルールが最後に変更されたときのUNIXタイムスタンプ。 (単位:秒) このパラメーターは必須です。 データ型: 文字列。
- 例
{ "バージョン":0, "コンテンツ":{ "nameList":[{"signList":["xxxxxx" 、"xxxxx" 、"xxxx" 、"xxxx" 、"xx"] 、"name":"apk-xxxx"}] 、 "name":"test", "action":"close" }, "RuleId":271、 「時間」: 1585836143 }
- DefenseTypeパラメーターがbot_wxbbに設定されている場合、Contentパラメーターの値には次のパラメーターが含まれます。
- Version: ルールのバージョン。 このパラメーターは必須です。 データ型: 整数。
- Content: ルールの詳細。 このパラメーターは必須です。 データ型: 文字列。 値は、次のパラメーターを含むJSON文字列です。
- name: ルールの名前。 このパラメーターは必須です。 データ型: 文字列。
- uri: 保護が必要なURLパス。 パスはスラッシュ (/) で始まる必要があります。 このパラメーターは必須です。 データ型: 文字列。
- matchType: 一致するメソッド。 このパラメーターは必須です。 データ型: 文字列。 有効な値: all (完全一致) 、prefix (prefix match) 、regex (正規表現一致) 。
- arg: 含まれるパラメーター。 このパラメーターは、matchTypeパラメーターと組み合わせてURLパスを指定します。 このパラメーターは必須です。 データ型: 文字列。
- action: ルールが一致した後に実行されるアクション。 このパラメーターは必須です。 データ型: 文字列。 設定可能な値は以下のとおりです。
- test: リクエストを監視します。
- close: リクエストをブロックします。
- wxbbVmpFieldType: 署名フィールドのタイプ。 このパラメーターはオプションです。 データ型: 整数。ルールにカスタム署名フィールドが追加されていない場合、このパラメータは返されない。 設定可能な値は以下のとおりです。
- 0: ヘッダー
- 1: パラメータ
- 2: クッキー
- wxbbVmpFieldValue: 署名フィールドの値。このパラメーターはオプションです。 Data type: string. カスタム署名フィールドがルールに追加されていない場合、このパラメーターは返されません。
- blockInvalidSign: 無効な署名に対してアクションを実行するかどうかを指定します。 このパラメーターは必須です。 データ型:Boolean
- blockProxy: プロキシでアクションを実行するかどうかを指定します。 このパラメーターは必須です。 データ型:Boolean
- blockSimulator: シミュレータでアクションを実行するかどうかを指定します。 このパラメーターは必須です。 データ型:Boolean
- RuleId: ルールのID。 このパラメーターは必須です。 データ型: 整数。
- Time: ルールが最後に変更されたときのUNIXタイムスタンプ。 (単位:秒) このパラメーターは必須です。 データ型: 文字列。
- 例
{ "バージョン":6、 "コンテンツ":{ "blockInvalidSign":true、 "wxbbVmpFieldValue":"test" 、 "blockSimulator":true、 "matchType":"すべて" 、 "arg":"test" 、 "name":"test", "action":"close" 、 "blockProxy":true、 "uri":"/index" 、 "wxbbVmpFieldType":1 }, "RuleId":2585、 「時間」: 1586241849 }
- DefenseTypeパラメーターがac_blacklistに設定されている場合、Contentパラメーターの値には次のパラメーターが含まれます。
- empty: ブラックリストが空かどうかを指定します。 このパラメーターは必須です。 データ型: Boolean。
- remoteAddr: ブラックリストのIPアドレス。 このパラメーターは必須です。 データ型: 配列。
- area: リージョンブロックルール。パラメーターではなく、countryCodes、regionCodesを含むJSON文字列で定式化されています。 (notパラメーターは、アクセスを許可するかどうかを指定します。) このパラメータは必須です。 データ型: 文字列。 ブロックされた国と地域はコードとして返されます。 コンソールに移動して、ブロックされている国と地域を表示することをお勧めします。
- 例
{ "empty":false、 "remoteAddr":["1.XX. XX.1" 、"12.XX. XX.2"] }
- DefenseTypeパラメーターがac_highfreqに設定されている場合、Contentパラメーターの値には次のパラメーターが含まれます。
- interval: 検出の間隔。 このパラメーターは必須です。 データ型: 整数。 有効な値: 5 ~ 1800 (単位:秒)
- ttl: IPアドレスがブロックされている期間。 データ型: 整数。 有効値: 60 ~ 86400 (単位:秒)
- count: IPアドレスから開始されたweb攻撃の数のしきい値。 指定された期間にIPアドレスから開始された攻撃の数がしきい値を超えた場合、IPアドレスはブロックされます。 このパラメーターは必須です。 データ型: 整数。 有効な値: 2 ~ 50000
- 例
{ "interval":60、 "ttl":300、 「カウント」: 60 }
- DefenseTypeパラメーターがac_dirscanに設定されている場合、Contentパラメーターの値には次のパラメーターが含まれます。
- interval: 検出の間隔。 このパラメーターは必須です。 データ型: 整数。 有効な値: 5 ~ 1800 (単位:秒)
- ttl: IPアドレスがブロックされている期間。 このパラメーターは必須です。 データ型: 整数。 (単位:秒)
- count: IPアドレスから許可されるリクエストの最大数。 このパラメーターは必須です。 データ型: 整数。 有効な値: 2 ~ 50000
- weight: すべてのリクエストに対するHTTP 404ステータスコードを持つリクエストの割合。 このパラメーターは必須です。 データ型: float。 有効値:
(0,1)
。 - uriNum: the maximum number of paths that can be scanned. このパラメーターは必須です。 データ型: 整数。 有効な値: 2 ~ 50000
- 例
{ "interval":10、 "ttl":1800、 "count":50、 "重量":0.7、 "uriNum":20 }
- DefenseTypeパラメーターがac_customに設定されている場合、Contentパラメーターの値はsceneパラメーターによって異なります。
- aclルールを設定するためにsceneパラメーターがcustom_ACLに設定されている場合、Contentパラメーターの値には次のパラメーターが含まれます。
- name: ルールの名前。 このパラメーターは必須です。 Data type: string.
- scene: 保護ポリシーのタイプ。 このパラメーターは必須です。 データ型: 文字列。 ACLルールが設定されている場合、このパラメーターの値はcustom_aclとして固定されます。
- action: ルールが一致した後に実行されるアクション。 このパラメーターは必須です。 データ型: 文字列。 設定可能な値は以下のとおりです。
- monitor: リクエストを監視します。
- captcha: スライダーCAPTCHA検証を実行します。
- captcha_strict: 厳密なスライダーCAPTCHA検証を実行します。
- js: JavaScript検証を実行します。
- block: リクエストをブロックします。
- conditions: 一致する条件。 このパラメーターは必須です。 データ型: 配列。 値は、次のパラメーターを含むJSON文字列です。
- key: 一致するアイテム。 有効な値: URL、IP、リファラー、User-Agent、Params、Cookie、Content-Type、Content-Length、X-Forwarded-For、Post-Body、Http-Method、Header、URLPath
- opCode: 論理的な関係。 設定可能な値は以下のとおりです。
- 11: equals
- 10: 等しくない
- 41: 複数の値の1つに等しい
- 50: どの値にも等しくない
- 1: 含む
- 0: 含まない
- 51: 複数の値のいずれかを含む
- 52: 値を含まない
- 82: exists
- 2: 存在しません
- 21: 長さに等しい
- 22: 長さより大きい
- 20: 長さより小さい
- 60: 正規表現と一致しません
- 61: 正規表現に一致する
- 72: プレフィックスに一致
- 81: 接尾辞に一致する
- 80: 空のコンテンツ
- values: 一致する値。 このパラメーターは、ビジネス要件に基づいて指定できます。 データ型: 文字列。
- contain: 論理関係。 このパラメーターの有効な値は、opCodeパラメーターの値と同じです。
- opValue: 省略された論理関係の説明。 詳細については、opCodeパラメーターの説明をご参照ください。
- pattern: 省略された論理関係の説明。 このパラメーターの有効な値は、opValueパラメーターの値と同じです。
- expressions: ルールの条件式。 式は、ルールのすべての条件を表します。 このパラメーターは必須です。 データ型: 配列。
- 例
{ "name":"test2" 、 "アクション":"モニター" 、 "conditions":[{"contain":1,"values":"login","pattern":"contain","opCode":1,"opValue":"contain","key":"URL"}] 、 "expressions":["request_uri contains 'login'"] 、 "scene":"custom_acl" }
- HTTPフラッド保護ルールを設定するためにsceneパラメーターがcustom_ccに設定されている場合、Contentパラメーターの値には次のパラメーターが含まれます。
- name: ルールの名前。 このパラメーターは必須です。 データ型: 文字列。
- scene: 保護ポリシーのタイプ。 このパラメーターは必須です。 データ型: 文字列。 HTTPフラッド保護ルールが設定されている場合、このパラメーターの値はcustom_ccに固定されます。
- conditions: 一致する条件。 このパラメーターは必須です。 データ型: 配列。 値は、次のパラメーターを含むJSON文字列です。
- key: 一致するアイテム。 有効な値: URL、IP、リファラー、User-Agent、Params、Cookie、Content-Type、Content-Length、X-Forwarded-For、Post-Body、Http-Method、Header、URLPath
- opCode: 論理的な関係。 有効な値:
- 11: equals
- 10: 等しくない
- 41: 複数の値の1つに等しい
- 50: 任意の値と等しくない
- 1: 含む
- 0: 含まない
- 51: 複数の値のいずれかを含む
- 52: 値を含まない
- 82: exists
- 2: 存在しません
- 21: 長さに等しい
- 22: 長さより大きい
- 20: 長さより小さい
- 60: 正規表現と一致しません
- 61: 正規表現に一致する
- 72: プレフィックスに一致
- 81: 接尾辞に一致する
- 80: 空のコンテンツ
- values: 一致する値。 このパラメーターは、ビジネス要件に基づいて指定できます。 データ型: 文字列。
- contain: 論理関係。 このパラメーターの有効な値は、opCodeパラメーターの値と同じです。
- opValue: 省略された論理関係の説明。 詳細については、opCodeパラメーターの説明をご参照ください。
- pattern: 省略された論理関係の説明。 このパラメータで有効な値はopValue パラメータを使用しています。
- expressions: ルールの条件式。 式は、ルールのすべての条件を表します。 このパラメーターは必須です。 データ型: 配列。
- action: ルールが一致した後に実行されるアクション。 このパラメーターは必須です。 データ型: 文字列。 設定可能な値は以下のとおりです。
- monitor: リクエストを監視します。
- captcha: スライダーCAPTCHA検証を実行します。
- captcha_strict: 厳密なスライダーCAPTCHA検証を実行します。
- js: JavaScript検証を実行します。
- block: リクエストをブロックします。
- ratelimit: オブジェクトからのリクエストの最大レート。 このパラメーターは必須です。 データ型: JSON文字列。 値は、次のパラメーターを含むJSON文字列です。
- target: リクエストレートが測定されるオブジェクトのタイプ。 このパラメーターは必須です。 データ型: 文字列。 設定可能な値は以下のとおりです。
- remote_addr: IPアドレス。
- cookie.acw_tc: セッションがあります。
- queryarg: カスタムパラメータ。 カスタムパラメーターを使用する場合は、サブキーパラメーターでカスタムパラメーターの名前を指定する必要があります。
- cookie: カスタムクッキー。 カスタムcookieを使用する場合は、subkeyパラメーターでcookieの内容を指定する必要があります。
- header: カスタムヘッダー。 カスタムヘッダーを使用する場合は、subkeyパラメーターでヘッダーの内容を指定する必要があります。
- subkey: このパラメーターは、targetパラメーターがcookie、header、またはqueryargに設定されている場合にのみ必要です。 subkeyパラメーターはオプションです。 データ型: 文字列。
- interval: 指定されたオブジェクトからのリクエスト数を測定する期間。 このパラメーターは、thresholdパラメーターと一緒に使用する必要があります。 このパラメーターは必須です。 データ型: 整数。 (単位:秒)
- threshold: 指定された期間中に個々のオブジェクトから許可されるリクエストの最大数。 このパラメーターは必須です。 データ型: 整数。
- status: HTTPステータスコードの頻度。 このパラメーターはオプションです。 データ型: JSON文字列。 値は、次のパラメーターを含むJSON文字列です。
- code: HTTPステータスコード。 このパラメーターは必須です。 データ型: 整数。
- count: 指定された HTTP ステータスコードが返される回数の閾値を指定します。閾値は、ルールが一致するかどうかを判定するために使用される。 実際の数値がしきい値より大きい場合、nameパラメーターで指定されたルールが一致します。 このパラメーターはオプションです。 データ型: 整数。 有効な値: 1 ~ 999999999 You can set the count or ratio parameter. You cannot set both parameters at the same time.
- ratio: 指定されたHTTPステータスコードが返される回数のしきい値。 閾値は、ルールが一致するかどうかを判定するために使用される。 実際のパーセンテージがしきい値より大きい場合、nameパラメーターで指定されたルールが一致します。 このパラメーターはオプションです。 データ型: 整数。 有効な値: 1 ~ 100 countまたはratioパラメーターを設定できます。 両方のパラメーターを同時に設定することはできません。
- scope: 設定が有効になるスコープ。 このパラメーターは必須です。 データ型: 文字列。 設定可能な値は以下のとおりです。
- rule: 指定された条件に一致するオブジェクト
- domain: ルールが適用されるドメイン名
- ttl: 指定されたアクションが実行される期間。 このパラメーターは必須です。 データ型: 整数。 有効値: 60 ~ 86400 (単位:秒)
- 例
{ "name":"HTTPフラッド保護ルール" 、 "conditions":[{"contain":1,"values":"login","pattern":"contain","opCode":1,"opValue":"contain","key":"URL"}] 、 "expressions":["request_uri contains 'login'"] 、 "action":"block" 、 "scene":"custom_cc" 、 "ratelimit":{ "target": "remote_addr" 、 "interval": 300、 "threshold": 2000、 "status": { "code": 404、 "count": 200 }, "scope": "rule" 、 "ttl": 1800 } }
- target: リクエストレートが測定されるオブジェクトのタイプ。 このパラメーターは必須です。 データ型: 文字列。 設定可能な値は以下のとおりです。
- aclルールを設定するためにsceneパラメーターがcustom_ACLに設定されている場合、Contentパラメーターの値には次のパラメーターが含まれます。
- DefenseTypeパラメーターがwhitelistに設定されている場合、Contentパラメーターの値には次のパラメーターが含まれます。
- name: ルールの名前を指定します。 このパラメーターは必須です。 データ型: 文字列。
- tags: 検出をスキップする保護モジュール。 複数のモジュールを指定できます。 このパラメーターは必須です。 データ型: 配列。 有効な値:
- waf: Webサイトのホワイトリスト
- cc: HTTPフラッド保護
- customrule: カスタム保護ポリシー
- blacklist: IPアドレスブラックリスト
- antiscan: スキャン保護
- 通常: 保護ルールエンジン
- deeplearning: ディープラーニングエンジン
- 不正防止: データリスク管理
- dlp: データリーク防止
- tamperproof: ウェブサイトの改ざん防止
- bot_intelligence: ボットの脅威インテリジェンス
- bot_algorithm: インテリジェントアルゴリズム
- bot_wxbb: アプリの保護
- bypassTags: リクエストを検出しない保護モジュール。 このパラメーターは必須です。 データ型: 文字列。
- origin: ホワイトリストルールのソース。 このパラメーターはオプションです。 データ型: 文字列。 値はaiとして固定されています。これは、ホワイトリストルールがインテリジェントルールホスティング機能によって自動的に追加されることを示しています。 パラメーターが返されない場合、ホワイトリストルールには、手動で追加したルールと、インテリジェントルールホスティング機能によって自動的に追加されたルールが含まれます。
- conditions: 一致する条件。 このパラメーターは必須です。 データ型: 配列。 値は、次のパラメーターを含むJSON文字列です。
- key: 一致するアイテム。 有効な値: URL、IP、リファラー、User-Agent、Params、Cookie、Content-Type、Content-Length、X-Forwarded-For、Post-Body、Http-Method、Header、URLPath
- opCode: 論理的な関係。 設定可能な値は以下のとおりです。
- 11: equals
- 10: 等しくない
- 41: 複数の値の1つに等しい
- 50: 任意の値と等しくない
- 1: 含む
- 0: 含まない
- 51: 複数の値のいずれかを含む
- 52: 値を含まない
- 82: exists
- 2: 存在しません
- 21: 長さに等しい
- 22: 長さより大きい
- 20: 長さより小さい
- 60: 正規表現と一致しません
- 61: 正規表現に一致する
- 72: プレフィックスに一致
- 81: matches a suffix
- 80: 空のコンテンツ
- values: 一致する値。 このパラメーターは、ビジネス要件に基づいて指定できます。 データ型: 文字列。
- contain: 論理関係。 このパラメーターの有効な値は、opCodeパラメーターの値と同じです。
- opValue: 省略された論理関係の説明。 詳細については、opCodeパラメーターの説明をご参照ください。
- pattern: 省略された論理関係の説明。 このパラメーターの有効な値は、opValueパラメーターの値と同じです。
- expressions: ルールの条件式。 式は、ルールのすべての条件を表します。 このパラメーターは必須です。 データ型: 配列。
- 例
{ "name": "test" 、 "tags": ["cc" 、"customrule"] 、 "bypassTags":"不正防止、dlp、tamperproof" 、 "conditions":[{"contain":1,"values":"login","pattern":"contain","opCode":1,"opValue":"contain","key":"URL"}] 、 "expressions":["request_uri contains 'login'"] }
例
リクエストの例
http(s):// [エンドポイント]/?Action=DescribeProtectionModuleRules
&InstanceId=waf_elasticity-cn-0xldbqt ****
&Domai n=www.example.com
&DefenseType=ac_highfreq
&<共通リクエストパラメーター>
正常に処理された場合のレスポンス例
XML
形式
HTTP/1.1 200 OK
Content-Type:application/xml
<?xml version="1.0" encoding="UTF-8" ?>
<DescribeProtectionModuleRulesResponse>
<TotalCount>1</TotalCount>
<ルール>
<バージョン> 2</バージョン>
<ステータス> 1</ステータス>
<コンテンツ>
<count>60</count>
<interval>60</interval>
<ttl>300</ttl>
</コンテンツ>
<RuleId>42755</RuleId>
<Time>1570700044</Time>
</ルール>
<RequestId>D7861F61-5B61-46CE-A47C-6B19160D5EB0</RequestId>
</DescribeProtectionModuleRulesResponse>
JSON
形式
HTTP/1.1 200 OK
Content-Type:application/json
{
"TotalCount" : 1、
"ルール" : [ {
"バージョン" : 2、
"ステータス" : 1、
"コンテンツ" : {
"count" : 60、
"interval" : 60、
"ttl" : 300
},
"RuleId" : 42755、
「時間」: 1570700044
} ],
"RequestId" : "D7861F61-5B61-46CE-A47C-6B19160D5EB0"
}
エラーコード
エラーコードリストについては、「API エラーセンター」をご参照ください。