# 查询web基础防护内置规则列表 - ListWebBasicProtectionRules
#### 功能介绍
查询web基础防护内置规则列表
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-waf/waf_02_0007.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-waf/waf_02_0119.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项            | 访问级别 | 资源类型（\*为必须） | 条件键                   | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | waf:policy:get | Read | policy \*   | g:EnterpriseProjectId | -  | -      |
     
  
 
#### URI
GET /v1/{project_id}/waf/policy/basic-protection/default-rules
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数解释：** 项目ID，对应控制台用户名-\>我的凭证-\>项目列表-\>项目ID。 **约束限制：** 不涉及 **取值范围：** 只能由英文字母、数字组成，且长度为32个字符。 **默认取值：** 不涉及 |
   
表2Query参数 
| 参数                     | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| enterprise_project_id  | 否    | String  | **参数解释：** 您可以通过调用企业项目管理服务（EPS）的查询企业项目列表接口（ListEnterpriseProject）查询企业项目ID。若需要查询当前用户所有企业项目绑定的资源信息，请传参all_granted_eps。 **约束限制：** 不涉及 **取值范围：** - 0：代表default企业项目   - all_granted_eps：代表所有企业项目   - 其它企业项目ID：长度为36个字符    **默认取值：** 0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| offset                 | 否    | Integer | **参数解释：** 分页查询的起始位置，表示从第几条记录开始返回 **约束限制：** 不涉及 **取值范围：** \[0,2147483645\] **默认取值：** 0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| limit                  | 否    | Integer | **参数解释：** 分页查询的单页返回数量，控制每次请求返回的记录条数。 **约束限制：** 不涉及 **取值范围：** \[1, 1000\] **默认取值：** 10                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| from                   | 否    | Long    | **参数解释：** 起始时间（13位毫秒时间戳），需要和to同时使用。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| to                     | 否    | Long    | **参数解释：** 结束时间（13位毫秒时间戳），需要和from同时使用。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| level                  | 否    | Integer | **参数解释：** 规则集的防护严格程度。规则集（宽松）下对业务的误报率降低，但漏报率可能会增高；而规则集（严格）下对业务的误报率可能会增高，但漏报率降低。 **约束限制：** 不涉及 **取值范围：** - 1：宽松   - 2：中等   - 3：严格    **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| id                     | 否    | String  | **参数解释：** 规则ID，规则的唯一标识。 **约束限制：** 不涉及 **取值范围：** 长度为6个字符 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| description            | 否    | String  | **参数解释：** 规则描述 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| cve_number             | 否    | String  | **参数解释：** CVE编号 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| risk_level             | 否    | Integer | **参数解释：** 危险等级 **约束限制：** 不涉及 **取值范围：** - 1：高危   - 2：中危   - 3：低危    **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| protection_type_names  | 否    | String  | **参数解释：** 防护类型 **约束限制：** 不涉及 **取值范围：** - vuln：其他   - xss：跨站脚本   - cmdi：命令注入   - lfi：本地文件包含   - rfi：远程文件包含   - webshell：网站木马   - robot：恶意爬虫   - sqli：SQL注入    **默认取值：** 不涉及 |
| application_type_names | 否    | String  | **参数解释：** 应用类型，可通过ConfirmApplicationTypes接口获取支持的应用类型 **约束限制：** 不涉及 **取值范围：** 请参见ConfirmApplicationTypes接口 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   
#### 请求参数
表3请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释：** 用户Token，通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                               |
| Content-Type | 是    | String | **参数解释：** 内容类型 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** application/json;charset=utf8                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| X-Language   | 否    | String | **参数解释：** 语言，默认值为zh-cn。zh-cn（中文）/en-us（英文）。 **约束限制：** 不涉及 **取值范围：** - zh-cn：中文   - en-us：英文    **默认取值：** zh-cn |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数    | 参数类型                                                                                                               | 描述                |
|:---|:---|:---|
| total | Integer                                                                                                            | 该策略下web基础防护内置规则数量 |
| items | Array of [WebBasicProtectionRulesItem] objects | web基础防护内置规则数组     |
   
 表5WebBasicProtectionRulesItem 
| 参数               | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|
| id               | String  | **参数解释：** 规则的ID，规则的唯一标识 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| description      | String  | **参数解释：** 规则描述 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| cve_number       | String  | **参数解释：** CVE编号 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| risk_level       | Integer | **参数解释：** 危险等级 - 1：高危   - 2：中危   - 3：低危   - 1   - 2   - 3    **取值范围：** |
| application_type | String  | **参数解释：** 应用类型 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| protection_type  | String  | **参数解释：** 防护类型 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| effective_time   | Long    | **参数解释：** 生效时间 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| create_time      | Long    | **参数解释：** 创建时间 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| update_time      | Long    | **参数解释：** 更新时间 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   
**状态码：400**
表6响应Body参数 
| 参数                            | 参数类型                                                                                         | 描述                                                                                                 |
|:---|:---|:---|
| error_code                    | String                                                                                       | 错误码                                                                                                |
| error_msg                     | String                                                                                       | 错误信息                                                                                               |
| encoded_authorization_message | String                                                                                       | 编码 (加密) 后的详细拒绝原因，用户可以自行调用 STS 服务的decode-authorization-message接口进行解码，可参考STS5联调自验证。IAM5鉴权错误时才会返回此字段。 |
| details                       | Array of [IAM5ErrorDetails] objects | 调用下游服务的报错信息集合，IAM5鉴权错误时才会返回此字段。                                                                    |
   
 表7IAM5ErrorDetails 
| 参数         | 参数类型   | 描述       |
|:---|:---|:---|
| error_code | String | 下游服务错误码  |
| error_msg  | String | 下游服务报错信息 |
   
**状态码：401**
表8响应Body参数 
| 参数                            | 参数类型                                                                                           | 描述                                                                                                 |
|:---|:---|:---|
| error_code                    | String                                                                                         | 错误码                                                                                                |
| error_msg                     | String                                                                                         | 错误信息                                                                                               |
| encoded_authorization_message | String                                                                                         | 编码 (加密) 后的详细拒绝原因，用户可以自行调用 STS 服务的decode-authorization-message接口进行解码，可参考STS5联调自验证。IAM5鉴权错误时才会返回此字段。 |
| details                       | Array of [IAM5ErrorDetails] objects | 调用下游服务的报错信息集合，IAM5鉴权错误时才会返回此字段。                                                                    |
   
 表9IAM5ErrorDetails 
| 参数         | 参数类型   | 描述       |
|:---|:---|:---|
| error_code | String | 下游服务错误码  |
| error_msg  | String | 下游服务报错信息 |
   
**状态码：500**
表10响应Body参数 
| 参数                            | 参数类型                                                                                           | 描述                                                                                                 |
|:---|:---|:---|
| error_code                    | String                                                                                         | 错误码                                                                                                |
| error_msg                     | String                                                                                         | 错误信息                                                                                               |
| encoded_authorization_message | String                                                                                         | 编码 (加密) 后的详细拒绝原因，用户可以自行调用 STS 服务的decode-authorization-message接口进行解码，可参考STS5联调自验证。IAM5鉴权错误时才会返回此字段。 |
| details                       | Array of [IAM5ErrorDetails] objects | 调用下游服务的报错信息集合，IAM5鉴权错误时才会返回此字段。                                                                    |
   
 表11IAM5ErrorDetails 
| 参数         | 参数类型   | 描述       |
|:---|:---|:---|
| error_code | String | 下游服务错误码  |
| error_msg  | String | 下游服务报错信息 |
   
#### 请求示例
查询项目id为project_id，Web基础防护的规则集详情。
```
GET https://{endpoint}/v1/{project_id}/waf/policy/basic-protection/default-rules
```
#### 响应示例
**状态码：200**
```
{
  "total" : 1,
  "items" : [ {
    "id" : "122980",
    "description" : "利用nmap的命令注入攻击",
    "cve_number" : null,
    "risk_level" : 1,
    "application_type" : null,
    "protection_type" : "cmdi",
    "effective_time" : 0,
    "create_time" : 1618539073821,
    "update_time" : 1749738600000
  } ]
}
```
#### SDK代码示例
SDK代码示例如下。
- [Java]
  ```
  package com.huaweicloud.sdk.test;
  import com.huaweicloud.sdk.core.auth.ICredential;
  import com.huaweicloud.sdk.core.auth.BasicCredentials;
  import com.huaweicloud.sdk.core.exception.ConnectionException;
  import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
  import com.huaweicloud.sdk.core.exception.ServiceResponseException;
  import com.huaweicloud.sdk.waf.v1.region.WafRegion;
  import com.huaweicloud.sdk.waf.v1.*;
  import com.huaweicloud.sdk.waf.v1.model.*;
  public class ListWebBasicProtectionRulesSolution {
      public static void main(String[] args) {
          // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
          // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
          String ak = System.getenv("CLOUD_SDK_AK");
          String sk = System.getenv("CLOUD_SDK_SK");
          String projectId = "{project_id}";
          ICredential auth = new BasicCredentials()
                  .withProjectId(projectId)
                  .withAk(ak)
                  .withSk(sk);
          WafClient client = WafClient.newBuilder()
                  .withCredential(auth)
                  .withRegion(WafRegion.valueOf("<YOUR REGION>"))
                  .build();
          ListWebBasicProtectionRulesRequest request = new ListWebBasicProtectionRulesRequest();
          try {
              ListWebBasicProtectionRulesResponse response = client.listWebBasicProtectionRules(request);
              System.out.println(response.toString());
          } catch (ConnectionException e) {
              e.printStackTrace();
          } catch (RequestTimeoutException e) {
              e.printStackTrace();
          } catch (ServiceResponseException e) {
              e.printStackTrace();
              System.out.println(e.getHttpStatusCode());
              System.out.println(e.getRequestId());
              System.out.println(e.getErrorCode());
              System.out.println(e.getErrorMsg());
          }
      }
  }
  ```
- [Python]
  ```
  # coding: utf-8
  import os
  from huaweicloudsdkcore.auth.credentials import BasicCredentials
  from huaweicloudsdkwaf.v1.region.waf_region import WafRegion
  from huaweicloudsdkcore.exceptions import exceptions
  from huaweicloudsdkwaf.v1 import *
  if __name__ == "__main__":
      # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
      # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
      ak = os.environ["CLOUD_SDK_AK"]
      sk = os.environ["CLOUD_SDK_SK"]
      projectId = "{project_id}"
      credentials = BasicCredentials(ak, sk, projectId)
      client = WafClient.new_builder() \
          .with_credentials(credentials) \
          .with_region(WafRegion.value_of("<YOUR REGION>")) \
          .build()
      try:
          request = ListWebBasicProtectionRulesRequest()
          response = client.list_web_basic_protection_rules(request)
          print(response)
      except exceptions.ClientRequestException as e:
          print(e.status_code)
          print(e.request_id)
          print(e.error_code)
          print(e.error_msg)
  ```
- [Go]
  ```
  package main
  import (
  "fmt"
  "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
      waf "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/waf/v1"
  "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/waf/v1/model"
      region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/waf/v1/region"
  )
  func main() {
      // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
      // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
      ak := os.Getenv("CLOUD_SDK_AK")
      sk := os.Getenv("CLOUD_SDK_SK")
      projectId := "{project_id}"
      auth, err := basic.NewCredentialsBuilder().
          WithAk(ak).
          WithSk(sk).
          WithProjectId(projectId).
          SafeBuild()
      if err != nil {
          fmt.Println(err)
          return
      }
      hcClient, err := waf.WafClientBuilder().
           WithRegion(region.ValueOf("<YOUR REGION>")).
           WithCredential(auth).
           SafeBuild()
      if err != nil {
          fmt.Println(err)
          return
      }
      client := waf.NewWafClient(hcClient)
      request := &model.ListWebBasicProtectionRulesRequest{}
  response, err := client.ListWebBasicProtectionRules(request)
  if err == nil {
          fmt.Printf("%+v\n", response)
      } else {
          fmt.Println(err)
      }
  }
  ```
- [更多]
  更多编程语言的SDK代码示例，请参见[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/WAF/sdk?api=ListWebBasicProtectionRules)的代码示例页签，可生成自动对应的SDK代码示例。
#### 状态码
| 状态码 | 描述        |
|:---|:---|
| 200 | 请求成功      |
| 400 | 请求失败      |
| 401 | token权限不足 |
| 500 | 服务器内部错误   |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-waf/ErrorCode.html)。
