华为云用户手册

  • 请求示例 在项目id为project_id的项目下,创建域名是“www.demo.com”的云模式防护域名,该域名的客户端请求访问防护域名源站服务器的协议是“HTTPS”,WAF转发客户端请求到防护域名源站服务器的协议是“HTTP”,源站地址是“ipv4”,源站服务器的IP地址是“x.x.x.x”,WAF转发客户端请求到源站服务的业务端口是"7443",该域名不使用代理和独享ip,套餐付费模式是包周期款模式,域名描述是“dome”,对应WAF控制台域名详情中的网站名称是“dome”,对外协议的证书名称是“test6”,证书id是“3ac1402300374a63a05be68c641e92c8”。 POST https://{Endpoint}/v1/{project_id}/waf/instance?enterprise_project_id=0 { "hostname" : "www.demo.com", "server" : [ { "front_protocol" : "HTTPS", "back_protocol" : "HTTP", "type" : "ipv4", "address" : "x.x.x.x", "port" : "7443" } ], "proxy" : false, "paid_type" : "prePaid", "description" : "demo", "web_tag" : "demo", "certificateid" : "3ac1402300374a63a05be68c641e92c8", "certificatename" : "test6", "exclusive_ip" : false }
  • 响应示例 状态码: 200 OK { "id" : "31af669f567246c289771694f2112289", "hostname" : "www.demo.com", "protocol" : "HTTP", "server" : [ { "address" : "x.x.x.x", "port" : 80, "type" : "ipv4", "weight" : 1, "front_protocol" : "HTTP", "back_protocol" : "HTTP" } ], "proxy" : false, "timestamp" : 1650527546420, "flag" : { "pci_3ds" : "false", "pci_dss" : "false", "ipv6" : "false", "cname" : "new", "is_dual_az" : "true" }, "policyid" : "41cba8aee2e94bcdbf57460874205494", "protect_status" : 1, "access_status" : 0, "access_code" : "1b18879b9d064f8bbcbf8abce7294cac", "block_page" : { "template" : "default" }, "web_tag" : "", "exclusive_ip" : false, "http2_enable" : false }
  • 响应示例 状态码: 200 OK { "items" : [ { "id" : "31af669f567246c289771694f2112289", "hostid" : "31af669f567246c289771694f2112289", "description" : "", "proxy" : false, "flag" : { "pci_3ds" : "false", "pci_dss" : "false", "ipv6" : "false", "cname" : "new", "is_dual_az" : "true" }, "region" : "cn-north-4", "hostname" : "www.demo.com", "access_code" : "1b18879b9d064f8bbcbf8abce7294cac", "policyid" : "41cba8aee2e94bcdbf57460874205494", "timestamp" : 1650527546454, "protect_status" : 0, "access_status" : 0, "exclusive_ip" : false, "web_tag" : "", "paid_type" : "prePaid", "waf_type" : "cloud" } ], "total" : 1, "cloud_total" : 1, "premium_total" : 0 }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 total Integer 所有防护域名的数量 cloud_total Integer 云模式防护域名的数量 premium_total Integer 独享模式防护域名的数量 items Array of CompositeHostResponse objects 详细的防护域名信息 表5 CompositeHostResponse 参数 参数类型 描述 id String 域名id hostid String 域名id hostname String 创建的云模式防护域名 policyid String 策略id access_code String cname前缀 protect_status Integer 域名防护状态: -1:bypass,该域名的请求直接到达其后端服务器,不再经过WAF 0:暂停防护,WAF只转发该域名的请求,不做攻击检测 1:开启防护,WAF根据您配置的策略进行攻击检测 access_status Integer 域名接入状态,0表示未接入,1表示已接入 proxy Boolean 防护域名是否使用代理 false:不使用代理 true:使用代理 timestamp Long 创建防护域名的时间 paid_type String 套餐付费模式,默认值为prePaid。prePaid:包周期款模式;postPaid:按需模式。 flag Flag object 特殊标识,用于前端使用 waf_type String 域名所属WAF模式,cloud为云模式,premium为独享模式 web_tag String 网站名称,对应WAF控制台域名详情中的网站名称 access_progress Array of Access_progress objects 接入进度,仅用于新版console(前端)使用 premium_waf_instances Array of Premium_waf_instances objects 租户引擎实例信息列表 description String 域名描述 exclusive_ip Boolean 是否使用用户独享的引擎公网ip,该参数为预留参数,用于后续功能扩展,用户可忽略 true:使用独享ip false:不使用独享ip region String 华为云区域ID,控制台创建的域名会携带此参数,api调用创建的域名此参数为空,可以通过华为云上地区和终端节点文档查询区域ID对应的中文名称 表6 Flag 参数 参数类型 描述 pci_3ds String 是否开启pci_3ds合规认证 true:开启 false:不开启 枚举值: true false pci_dss String 是否开启pci_dss合规认证 true:开启 false:不开启 枚举值: true false cname String old:代表域名使用的老的cname,new:代表域名使用新的cname 枚举值: old new is_dual_az String 是否支持双AZ模式 true:支持 false:不支持 枚举值: true false ipv6 String 域名是否开启ipv6 true:支持 false:不支持 枚举值: true false 表7 Access_progress 参数 参数类型 描述 step Integer 步骤 1: 指回源IP加白 2: 指本地验证 3:指修改DNS解析 status Integer 状态,0:未完成这个步骤;1:已完成这个状态” 表8 Premium_waf_instances 参数 参数类型 描述 id String 引擎实例id name String 引擎实例名 accessed Boolean 引擎实例是否已接入,false:未接入;true:已接入 状态码: 400 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 401 表10 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 500 表11 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息
  • 响应示例 状态码: 200 ok { "action" : { "category" : "block" }, "action_mode" : false, "conditions" : [ { "category" : "header", "index" : "demo", "logic_operation" : "contain", "contents" : [ "demo" ] } ], "description" : "", "id" : "2a3caa2bc9814c09ad73d02e3485b4a4", "policyid" : "1f016cde588646aca3fb19f277c44d03", "priority" : 50, "status" : 1, "time" : false, "timestamp" : 1656495488880 }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 id String 规则id name String 规则名称 policyid String 策略id description String 规则描述 status Integer 规则状态,0:关闭,1:开启 conditions Array of conditions objects 匹配条件列表,匹配条件必须同时满足。 action CustomAction object 精准防护规则命中后操作对象 action_mode Boolean 预留参数,可忽略。 priority Integer 执行该规则的优先级,值越小,优先级越高,值相同时,规则创建时间早,优先级越高。取值范围:0到1000。 timestamp Long 创建精准防护规则的 time Boolean 精准防护规则生效时间: “false”:表示该规则立即生效。 “true”:表示自定义生效时间。 start Long 精准防护规则生效的起始时间戳(秒)。当time=true,才会返回该参数。 terminal Long 精准防护规则生效的终止时间戳(秒)。当time=true,才会返回该参数。 producer Integer 规则创建对象,该参数为预留参数,用于后续功能扩展,当前请用户忽略该参数 表5 conditions 参数 参数类型 描述 category String 字段类型。可选值为:url、user-agent、ip、params、cookie、referer、header、request_line、method、reqeust index String 子字段: 字段类型为url、user-agent、ip、refer、request_line、method、reqeust时,不需要传index参数 字段类型为params、header、cookie并且子字段为自定义时,index的值为自定义子字段 logic_operation String 条件匹配逻辑。 contents Array of strings 条件匹配的内容 value_list_id String 引用表id。 表6 CustomAction 参数 参数类型 描述 category String 操作类型。 “block”:拦截。 “pass”:放行。 “log”:仅记录 枚举值: block pass log followed_action_id String 攻击惩罚规则id,只有当category参数值为block时才可配置该参数 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 401 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息
  • Token认证 Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。 Token可通过调用获取用户Token接口获取,调用本服务API需要project级别的Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示。 { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxx" } } } } 获取Token后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。 Content-Type: application/json X-Auth-Token: ABCDEFJ....
  • AK/SK认证 AK/SK签名认证方式仅支持消息体大小12MB以内,12MB以上的请求请使用Token认证。 AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。 签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。
  • 请求示例 更新项目id为project_id的告警通知配置,更新通知类型为证书到期,主题URN为 "urn:smn:cn-north-7:550500b49078408682d0d4f7d923f3e1:ces_zyh_test",告警通知名称为“test”,提前60天通知,时间间隔10080分钟一次。 PUT https://{Endpoint}/v2/{project_id}/waf/alert/{alert_id}?enterprise_project_id=0 { "notice_class" : "cert_alert_notice", "topic_urn" : "urn:smn:cn-north-7:550500b49078408682d0d4f7d923f3e1:ces_zyh_test", "name" : "test", "nearly_expired_time" : 60, "sendfreq" : 10080 }
  • 响应示例 状态码: 200 请求成功 { "enabled" : true, "enterprise_project_id" : "0", "id" : "7a19ee86a7dc43f0b12093decb795096", "is_all_enterprise_project" : true, "locale" : "zh-cn", "name" : "demo", "nearly_expired_time" : 60, "notice_class" : "cert_alert_notice", "prefer_html" : false, "sendfreq" : 10080, "threat" : [ ], "times" : 1, "topic_urn" : "urn:smn:cn-north-7:550500b49078408682d0d4f7d923f3e1:ces_zyh_test" }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 id String ID name String 告警通知名称 enabled Boolean 是否开启 false: 不开启 true: 开启 topic_urn String 主题 sendfreq Integer 时间间隔,单位为分钟。当通知类型为防护事件时,该参数表示在改时间间隔内,攻击次数等于或者大于设定阈值时,将发送告警通知,支持的值:5、15、30、60、120、360、720、1440;当通知类型为证书到期时,该参数表示每隔多长时间发送一次告警通知,支持的值为1440、10080(单位为分钟)。 locale String 语言 times Integer 当通知类型为防护事件时,需要填写该参数。在该时间间隔内,当攻击次数大于或等于您设置的阈值时才会发送告警通知 缺省值:1 threat Array of strings 事件类型 prefer_html Boolean 预留参数,可忽略 缺省值:false notice_class String 通知类型 nearly_expired_time String 提前通知天数 is_all_enterprise_project Boolean 是否是所有企业项目 缺省值:true enterprise_project_id String 企业项目ID update_time Long 更新时间 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 500 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 租户token Content-Type 是 String 内容类型 缺省值:application/json;charset=utf8 X-Language 是 String zh-cn/en-us 表3 请求Body参数 参数 是否必选 参数类型 描述 name 是 String 告警通知名称 enabled 否 Boolean 是否开启 false: 不开启 true: 开启 topic_urn 是 String 主题URN,通过“消息通知服务”获取 sendfreq 否 Integer 时间间隔,单位为分钟。当通知类型为防护事件时,该参数表示在改时间间隔内,攻击次数等于或者大于设定阈值时,将发送告警通知,支持的值:5、15、30、60、120、360、720、1440;当通知类型为证书到期时,该参数表示每隔多长时间发送一次告警通知,支持的值为1440、10080(单位为分钟)。 缺省值:5 locale 否 String 语言 zh-cn:中文 en-us:英文 times 否 Integer 当通知类型为防护事件时,需要填写该参数。在该时间间隔内,当攻击次数大于或等于您设置的阈值时才会发送告警通知 缺省值:1 threat 否 Array of strings 事件类型 notice_class 是 String 通知类型 threat_alert_notice: 防护事件 cert_alert_notice: 证书到期 nearly_expired_time 否 String 提前通知天数,通知类型为证书到期通知需要填写该参数 is_all_enterprise_project 否 Boolean 是否是所有企业项目
  • 错误码 当您调用API时,如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 状态码 错误码 错误信息 描述 处理措施 400 WAF.00011001 bad.request 非法请求 检查入参 400 WAF.00011002 url.param.illegal URL格式不正确 检查url格式 400 WAF.00011003 request.body.illegal 请求Body格式错误:Body中的参数缺失、值非法 检查请求body 400 WAF.00011004 id.illegal ID非法 检查ID 400 WAF.00011005 name.illegal Name非法 检查name 400 WAF.00011006 host.illegal 域名非法 检查域名 400 WAF.00011007 port.illegal 端口非法 检查端口 400 WAF.00011007 ip.illegal IP非法 检查IP地址 400 WAF.00011008 protect.status.illegal 防护状态非法 检查防护状态是否在枚举值范围 400 WAF.00011009 access.status.illegal 接入状态非法 检查接入状态是否在枚举值范围 400 WAF.00011010 offsetOrLimit.illegal 起始行或限制条数非法 检查起始行或者限制条数是否在范围内 400 WAF.00011011 pageOrPageSize.illegal 页码或每页条数非法 检查页码或者每页条数是否在范围内 400 WAF.00011012 standard.violated 参数非法 检查参数 400 WAF.00011013 description.illegal 描述格式非法 检查描述格式 400 WAF.00011014 request.header.illegal 请求Header格式错误:Header中的参数缺失、值非法 检查header必填参数 400 WAF.00011014 website.not.register 网站未备案 备案网站 400 WAF.00011016 name.duplicate 名称重复 修改名称 400 WAF.00012001 invalid.token token非法 检查token是否正确 400 WAF.00012002 invalid.project project_id和token中的不一致 检查project_id和token的一致性 400 WAF.00012003 permission.denied 没有权限 给账户分配WAF所需权限 400 WAF.00012004 account.frozen 账号冻结 解除冻结 400 WAF.00012005 not.subscribe 未订阅 先订阅WAF服务 400 WAF.00012006 pdp.permission.denied 没有权限 检查账户的PDP权限 400 WAF.00012007 jwt.authentication.disabled JWT认证关闭 开通JWT认证 400 WAF.00012008 jwt.authentication.invalid.token JWT token非法 检查账号是否具有JWT权限 400 WAF.00012009 jwt.authentication.failed JWT鉴权失败 先给账户授权 400 WAF.00012010 eps.all.not.support 所有企业项目下不支持写操作 开通企业项目的写权限 400 WAF.00013001 insufficient.quota 功能配额不足 购买功能配额升级包 400 WAF.00013002 feature.not.support 功能不支持 无 400 WAF.00013003 port.not.support 端口不支持 通过ELB进行端口转换 400 WAF.00013004 protocol.not.support 协议不支持 通过ELB转换协议 400 WAF.00013005 wildcard.domain.not.support 泛域名不支持 使用具体的域名 400 WAF.00013006 ipv6.not.support 不支持IPV6 当前版本不支持IPV6 400 WAF.00013007 insufficient.tenant.quota 租户配额不足 购买配额升级包 400 WAF.00014001 resource.not.found 资源找不到 资源已删除或不存在 400 WAF.00014002 resource.already.exists 资源已存在 资源已存在 400 WAF.00014003 open.protect.failed 开启防护失败 检查域名防护状态 400 WAF.00014004 access.failed 接入WAF失败 修改DNS解析 400 WAF.00014005 bypass.failed BypassWAF失败 检查防护状态后进行重试 400 WAF.00014006 proxy.config.error 代理配置错误 重新正确配置代理后重试 400 WAF.00014007 host.conflict 域名冲突 检查网站配置中是已存在域名 400 WAF.00014008 cert.inconsistent 相同的域名,但证书不一致 使用相同的证书 400 WAF.00014009 api.not.found 接口不存在 检查接口url 400 WAF.00014010 port.protocol.mismatch 端口和协议不匹配 选择匹配的协议和端口 400 WAF.00014011 host.blacklist 禁止添加该防护网站,域名被列入黑名单 无 400 WAF.00014012 insufficient.tenant.quota 租户配额不足 购买配额升级包 400 WAF.00014013 exclusive.ip.config.error 独享IP配置错误 检查独享IP配置 400 WAF.00014014 exclusive.ip.config.error 独享IP配置错误 检查独享IP配置 400 WAF.00021002 url.param.illegal url格式不正确 建议将请求体参数中url修改为标准的url后重新调试 400 WAF.00021003 request.body.illegal 请求体参数不正确 建议调试前根据文档检验入参 400 WAF.00021004 id.illegal 唯一标识符id格式不正确 建议按照文档中的正确说明获取ID 400 WAF.00021005 name.illegal name参数格式不正确 检查name格式,只能由字母、数字、-、_和.组成,长度不能超过64个字符 400 WAF.00021006 host.illegal 域名格式不正确 域名只能由字母、数字、-、_和.组成,长度不能超过64个字符 400 WAF.00021007 protocol.illegal 后端协议格式不正确 后端协议只能配置为HTTP或HTTPS,且必须大写 400 WAF.00021008 port.illegal 源站端口格式不正确 检查配置的端口是否为空,目标端口是否在0-65535范围内 400 WAF.00021009 ip.illegal ip格式不正确 建议检查ip格式是否为标准的ipv4或ipv6格式 400 WAF.00021010 server.address.illegal 服务器配置异常 检查服务器配置是否为空,数量是否在1-80范围内 400 WAF.00021012 path.illegal 规则配置中的url格式不正确 建议将请求体参数中url修改为标准的url后重新调试 400 WAF.00021013 cert.illegal https证书已经过期 建议重新上传未过期的证书 400 WAF.00021014 action.illegal 防护动作非法 建议根据文档中的枚举值配置防护动作 400 WAF.00021015 rule.status.illegal 规则状态非法 建议根据文档中的规则状态枚举值修改规则状态 400 WAF.00021016 description.illegal 描述异常 建议用标准的中英文语法描述 400 WAF.00021017 incorrect.rule.config 不正确的规则配置 建议根据帮助中心的文档配置防护规则 400 WAF.00021018 incorrect.reference.table.config 不正确的引用表配置 建议根据帮助中心的文档配置引用表 400 WAF.00021019 incorrect.route.config 不正确的线路配置 建议根据帮助中心的文档进行线路配置 400 WAF.00021020 offsetOrLimit.illegal 分页参数错误 建议根据帮助中心的文档填写分页参数 400 WAF.00021021 param.exceed.limit 参数超过限制 建议根据帮助中心的文档查看参数限制 400 WAF.00022002 resource.already.exists 资源已存在 建议在控制台查看所创建的资源是否已经存在 400 WAF.00022003 resource.is.being.used 资源正在使用中 先解除资源和使用者的关系,再删除资源 400 WAF.00022004 rule.conflict 规则冲突 检查目标规则是否和已有的规则发生冲突 403 WAF.00013014 insufficient.policy.quota 策略配额不足 购买域名扩展包或者升级规格 403 WAF.00022005 insufficient.quota 资源不足 建议购买对应资源的升级包 404 WAF.00022001 resource.not.found 资源不存在 建议到控制台查看资源状态或求助技术支持 500 WAF.00010001 internal.error 内部错误 联系技术支持 500 WAF.00010002 system.busy 内部错误 联系技术支持 500 WAF.00010003 cname.failed 创建或者修改CNAME失败 联系技术支持 500 WAF.00010004 cname.failed 获取OBS文件下载链接失败 联系技术支持 500 WAF.00020001 internal.error 服务内部异常 建议过五分钟后重试 500 WAF.00020002 system.busy 系统繁忙 建议过五分钟后重试 父主题: 附录
  • 响应示例 状态码: 200 请求成功 { "total" : 1, "items" : [ { "id" : "3b03be27a40b45d3b21fe28a351e2021", "name" : "ip_list848", "type" : "ip", "values" : [ "100.100.100.125" ], "timestamp" : 1650421866870, "producer" : 1, "description" : "demo" } ] }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 total Integer 引用表条数 items Array of ValueListResponseBody objects 引用表列表 表5 ValueListResponseBody 参数 参数类型 描述 id String 引用表id name String 引用表名称 type String 引用表类型 枚举值: url params ip cookie referer user-agent header response_code response_header response_body timestamp Long 引用表时间戳 values Array of strings 引用表的值 producer Integer 引用表来源,1代表用户创建,其它值代表modulleX自动生成 description String 引用表描述 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 401 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 500 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息
  • 调用API获取项目ID 项目ID可以通过调用查询指定条件下的项目信息API获取。 获取项目ID的接口为“GET https://{Endpoint}/v3/projects”,其中{Endpoint}为IAM的终端节点,可以从地区和终端节点获取。接口的认证鉴权请参见认证鉴权。 响应示例如下,其中projects下的“id”即为项目ID。 { "projects": [ { "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "xxxxxxxx", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99" }, "id": "a4a5d4098fb4474fa22cd05f897d6b99", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" } }
  • 响应示例 状态码: 200 请求成功 { "total" : 1, "items" : [ { "id" : "82c4f04f84fd4b2b9ba4b4ea0df8ee82", "policyid" : "2fcbcb23ef0d48d99d24d7dcff00307d", "timestamp" : 1668152426471, "description" : "demo", "status" : 1, "url" : "/attack", "category" : "sensitive", "contents" : [ "id_card" ] } ] }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 total Integer 防泄漏规则数量 items Array of LeakageListInfo objects 防泄漏规则列表 表5 LeakageListInfo 参数 参数类型 描述 id String 规则id policyid String 策略id url String 规则应用的url category String 类别 contents Array of strings 规则内容 timestamp Long 创建规则时间戳 status Integer 规则状态,0:关闭,1:开启 description String 规则描述 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 401 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 500 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息
  • 响应示例 状态码: 200 ok { "action" : { "category" : "block" }, "action_mode" : false, "conditions" : [ { "category" : "header", "index" : "demo", "logic_operation" : "contain", "contents" : [ "demo" ] } ], "description" : "", "name" : "test55", "id" : "2a3caa2bc9814c09ad73d02e3485b4a4", "policyid" : "1f016cde588646aca3fb19f277c44d03", "priority" : 50, "status" : 1, "time" : false, "timestamp" : 1656495488880 }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 id String 规则id name String 规则名称 policyid String 策略id description String 规则描述 status Integer 规则状态,0:关闭,1:开启 conditions Array of conditions objects 匹配条件列表,匹配条件必须同时满足。 action CustomAction object 精准防护规则命中后操作对象 action_mode Boolean 预留参数,可忽略。 priority Integer 执行该规则的优先级,值越小,优先级越高,值相同时,规则创建时间早,优先级越高。取值范围:0到1000。 timestamp Long 创建精准防护规则的 time Boolean 精准防护规则生效时间: “false”:表示该规则立即生效。 “true”:表示自定义生效时间。 start Long 精准防护规则生效的起始时间戳(秒)。当time=true,才会返回该参数。 terminal Long 精准防护规则生效的终止时间戳(秒)。当time=true,才会返回该参数。 producer Integer 规则创建对象,该参数为预留参数,用于后续功能扩展,当前请用户忽略该参数 表5 conditions 参数 参数类型 描述 category String 字段类型。可选值为:url、user-agent、ip、params、cookie、referer、header、request_line、method、reqeust index String 子字段: 字段类型为url、user-agent、ip、refer、request_line、method、reqeust时,不需要传index参数 字段类型为params、header、cookie并且子字段为自定义时,index的值为自定义子字段 logic_operation String 条件匹配逻辑。 contents Array of strings 条件匹配的内容 value_list_id String 引用表id。 表6 CustomAction 参数 参数类型 描述 category String 操作类型。 “block”:拦截。 “pass”:放行。 “log”:仅记录 枚举值: block pass log followed_action_id String 攻击惩罚规则id,只有当category参数值为block时才可配置该参数 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 401 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息
  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 id String 地址组id name String 地址组名称 ips String 地址组ip(以逗号分隔的ip或ip段) size Integer 地址组长度 rules Array of RuleInfo objects ip地址组绑定的规则列表 description String 地址组描述 表6 RuleInfo 参数 参数类型 描述 rule_id String 规则id rule_name String 规则名称 policy_id String 策略id policy_name String 策略名称 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 401 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息
  • 请求示例 更新项目id为project_id,地址组id为id的ip地址组。ip地址组的名称为"demo",地址为 "xx.xx.xx.xx",地址组描述为“”。 PUT https://{Endpoint}/v1/{project_id}/waf/ip-group/{id}?enterprise_project_id=0 { "ips" : "xx.xx.xx.xx", "name" : "demo", "description" : "" }
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token,通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Content-Type 是 String 内容类型 缺省值:application/json;charset=utf8 表4 请求Body参数 参数 是否必选 参数类型 描述 name 是 String 地址组名称 ips 是 String 以逗号分隔的ip或ip段 description 否 String 地址组描述
  • 响应示例 状态码: 200 请求成功 { "id" : "5d43af25404341058d5ab17b7ba78b56", "policyid" : "38ff0cb9a10e4d5293c642bc0350fa6d", "name" : "demo", "timestamp" : 1650531872900, "description" : "demo", "status" : 1, "addr" : "1.1.1.2", "white" : 0 }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 id String 规则id name String 黑白名单规则名称 policyid String 策略id addr String 黑白名单ip地址,需要输入标准的ip地址或地址段,例如:42.123.120.66或42.123.120.0/16 white Integer 防护动作: 0 拦截 1 放行 2 仅记录 ip_group Ip_group object Ip地址组 status Integer 规则状态,0:关闭,1:开启 description String 规则描述 timestamp Long 创建规则的时间戳,13位毫秒时间戳 表5 Ip_group 参数 参数类型 描述 id String Ip地址组id,在新增Ip地址组时系统自动生成的唯一标识 name String Ip地址组名 size Long Ip地址组中包含Ip/Ip段的数量 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 401 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 500 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息
  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 id String 规则id name String 黑白名单规则名称 policyid String 策略id addr String 黑白名单Ip/IP段 description String 黑白名单规则描述 white Integer 防护动作: 0 拦截 1 放行 2 仅记录 ip_group Ip_group object Ip地址组 表6 Ip_group 参数 参数类型 描述 id String Ip地址组id,在新增Ip地址组时系统自动生成的唯一标识 name String Ip地址组名 size Long Ip地址组中包含Ip/Ip段的数量 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 401 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息
  • 请求示例 更新项目id为project_id,防护策略id为policy_id,规则id为rule_id的黑白名单规则。更新规则名称为"demo",防护动作为"拦截",描述为‘demo”,黑白名单ip地址为“1.1.1.2”。 PUT https://{Endpoint}/v1/{project_id}/waf/policy/{policy_id}/whiteblackip/{rule_id}?enterprise_project_id=0 { "name" : "demo", "white" : 0, "description" : "demo", "addr" : "1.1.1.2" }
  • 请求示例 查询项目id为project_id,时间从2022-04-21 00:00:00到2022-04-21 00:00:50的安全总览中请求次数时间线统计数据 GET https://{Endpoint}/v1/{project_id}/waf/overviews/request/timeline?enterprise_project_id=0&from=1650470400196&to=1650470450000
  • 响应示例 状态码: 200 ok [ { "key" : "ACCESS", "timeline" : [ { "time" : 1650470400196, "num" : 0 } ] }, { "key" : "PRECISE", "timeline" : [ { "time" : 1650470400196, "num" : 0 } ] }, { "key" : "CRAWLER", "timeline" : [ { "time" : 1650470400196, "num" : 0 } ] }, { "key" : "CC", "timeline" : [ { "time" : 1650470400196, "num" : 0 } ] }, { "key" : "ATTACK", "timeline" : [ { "time" : 1650470400000, "num" : 0 } ] }, { "key" : "WEB_ATTACK", "timeline" : [ { "time" : 1650470400196, "num" : 0 } ] } ]
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 [数组元素] Array of StatisticsTimelineItem objects 安全统计的请求时间线数据 表5 StatisticsTimelineItem 参数 参数类型 描述 key String 键值,包括请求总量(ACCESS)、Bot攻击防护(CRAWLER)、攻击总量(ATTACK)、Web基础防护(WEB_ATTACK)、精准防护(PRECISE)、CC攻击防护(CC) timeline Array of TimeLineItem objects 对应键值的时间线统计数据 表6 TimeLineItem 参数 参数类型 描述 time Long 时间点 num Integer time对应时间点与前一时间点间隔内的统计数值。 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 401 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息
共100000条