- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- 创建用户组并授权使用WAF
- 购买WAF
- 网站接入WAF
- 查看防护事件
-
配置防护策略
- 防护配置概述
- 配置Web基础防护规则防御常见Web攻击
- 配置智能访问控制规则精准智能防御CC攻击
- 配置CC攻击防护规则防御CC攻击
- 配置精准访问防护规则定制化防护策略
- 配置IP黑白名单规则拦截/放行指定IP
- 配置地理位置访问控制规则拦截/放行特定区域请求
- 配置威胁情报访问控制规则拦截/放行指定IP库的IP
- 配置网页防篡改规则避免静态网页被篡改
- 配置网站反爬虫防护规则防御爬虫攻击
- 配置防敏感信息泄露规则避免敏感信息泄露
- 配置全局白名单规则对误报进行忽略
- 配置隐私屏蔽规则防隐私信息泄露
- 配置扫描防护规则自动阻断高频攻击
- 创建引用表对防护指标进行批量配置
- 配置攻击惩罚标准封禁访问者指定时长
- 条件字段说明
- WAF覆盖的应用类型
- 查看总览
- 网站设置
- 策略管理
- 安全报告
- 高阶功能
- 对象管理
- 系统管理
- 权限管理
- 监控与审计
- 最佳实践
-
API参考
- 使用前必读
- API概览
- 如何调用API
-
API
- 云模式防护网站管理
- 独享模式防护网站管理
- 防护策略管理
-
策略规则管理
- 修改单条规则的状态
- 查询cc规则列表
- 创建cc规则
- 根据Id查询cc防护规则
- 更新cc防护规则
- 删除cc防护规则
- 查询精准防护规则列表
- 创建精准防护规则
- 根据Id查询精准防护规则
- 更新精准防护规则
- 删除精准防护规则
- 创建全局白名单(原误报屏蔽)规则
- 查询全局白名单(原误报屏蔽)防护规则
- 更新全局白名单(原误报屏蔽)防护规则
- 删除全局白名单(原误报屏蔽)防护规则
- 查询黑白名单规则列表
- 创建黑白名单规则
- 查询黑白名单防护规则
- 更新黑白名单防护规则
- 查询全局白名单(原误报屏蔽)规则列表
- 删除黑白名单防护规则
- 查询JS脚本反爬虫规则列表
- 更新JS脚本反爬虫规则防护模式
- 创建JS脚本反爬虫规则
- 查询JS脚本反爬虫防护规则
- 更新JS脚本反爬虫防护规则
- 删除JS脚本反爬虫防护规则
- 查询隐私屏蔽防护规则列表
- 创建隐私屏蔽防护规则
- 查询隐私屏蔽防护规则
- 更新隐私屏蔽防护规则
- 删除隐私屏蔽防护规则
- 查询攻击惩罚规则列表
- 创建攻击惩罚规则
- 根据Id查询攻击惩罚防护规则
- 更新攻击惩罚规则
- 删除攻击惩罚规则
- 查询地理位置访问控制规则列表
- 创建地理位置控制规则
- 查询地理位置控制防护规则
- 更新地理位置控制防护规则
- 删除地理位置控制防护规则
- 查询防篡改规则列表
- 创建防篡改规则
- 查询防篡改防护规则
- 删除防篡改防护规则
- 网页防篡改规则更新缓存
- 查询防敏感信息泄露规则列表
- 创建防敏感信息泄露规则
- 查询防敏感信息泄露防护规则
- 更新防敏感信息泄露防护规则
- 删除防敏感信息泄露防护规则
- 查询引用表列表
- 创建引用表
- 查询引用表
- 修改引用表
- 删除引用表
- 地址组管理
- 证书管理
- 防护事件管理
- 安全总览
- 局点支持特性查询
- 独享实例管理
- 日志配置管理
- 租户订购管理
- 租户域名查询
- 租户防护域名管理
- 系统管理
- 告警管理
- 附录
- SDK参考
- 场景代码示例
-
常见问题
-
产品咨询
- WAF基础知识
- Web应用防火墙是否能防护IP?
- Web应用防火墙支持对哪些对象进行防护?
- Web应用防火墙与漏洞管理服务有哪些区别?
- Web应用防火墙支持自定义POST拦截吗?
- Web应用防火墙是否支持IPv4和IPv6共存?
- WAF和HSS的网页防篡改有什么区别?
- Web应用防火墙支持哪些Web服务框架/协议?
- WAF可以防护使用HSTS策略/NTLM代理认证访问的网站吗?
- WAF转发和Nginx转发有什么区别?
- Web应用防火墙和云防火墙有什么区别?
- Web应用防火墙可以配置会话Cookie吗?
- WAF对SQL注入、XSS跨站脚本和PHP注入攻击的检测原理?
- WAF是否可以防护Apache Struts2远程代码执行漏洞(CVE-2021-31805)?
- 接入WAF后为什么漏洞扫描工具扫描出未开通的非标准端口?
- 多Project下使用Web应用防火墙的限制条件?
- 已使用华为云APIG还需要购买WAF吗?
- 本地文件包含和远程文件包含是指什么?
- QPS和请求次数有什么区别?
- 接入Web应用防火墙的域名需要备案吗?
- Web应用防火墙支持自定义授权策略吗?
- 为什么Cookie中有HWWAFSESID或HWWAFSESTIME字段?
- 云模式、独享模式可以互相切换吗?
- 同一防护域名/IP可以添加到不同的账号进行防护吗?
- 什么是区域和可用区?
- Web应用防火墙可以跨区域使用吗?
- Web应用防火墙支持防护哪些区域?
- WAF可以跨企业项目使用吗?
- 购买或升级WAF时选择了企业项目,其他企业项目可以使用该企业项目的WAF吗?
- 购买和变更规格
-
网站接入
- 如何在添加域名中配置防护域名?
- 添加域名时,防护网站端口需要和源站端口配置一样吗?
- 如何放行云模式WAF的回源IP段?
- 删除防护域名后CNAME记录会保留多久?
- 后端服务器配置多个源站地址时的注意事项?
- Web应用防火墙支持配置泛域名吗?
- Web应用防火墙支持防护中文域名吗?
- 泛域名和单域名都接入WAF,WAF如何转发访问请求?
- 添加域名时提示“非法的源站地址”,如何处理?
- 添加防护域名时,提示“其他人已经添加了该域名,请确认该域名是否属于你”,如何处理?
- 添加域名时,为什么不能选择对外协议?
- 云模式服务器的源站地址可以配置成CNAME吗?
- 如何在华为云的云解析服务上进行DNS验证?
- 未配置子域名和TXT记录的影响?
- 如何查询域名提供商?
- 新旧CNAME的区别?
- 域名接入Web应用防火墙后,能通过IP访问网站吗?
- 如何设置使流量不经过WAF,直接访问源站?
- 域名接入WAF后,为什么无法开启防护模式?
-
防护规则
- Web基础防护支持设置哪几种防护等级?
- CC攻击的防护峰值是多少?
- 在什么情况下使用Cookie区分用户?
- CC规则里“限速频率”和“放行频率”的区别?
- 配置“人机验证”CC防护规则后,验证码不能刷新,验证一直不通过,如何处理?
- 如何不拦截带有.js的文件?
- Web应用防火墙可以批量配置黑白名单吗?
- Web应用防火墙可以导入/导出黑白名单吗?
- 开启JS脚本反爬虫后,为什么客户端请求获取页面失败?
- 开启网站反爬虫中的“其他爬虫”会影响网页的浏览速度吗?
- JS脚本反爬虫的检测机制是怎么样的?
- 哪些情况会造成WAF配置的防护规则不生效?
- 如果只允许指定地区的IP可以访问,如何设置防护策略?
- 拦截所有来源IP或仅允许指定IP访问防护网站,WAF如何配置?
- 系统自动生成策略包括哪些防护规则?
- 开启网页防篡改后,为什么刷新页面失败?
- 黑白名单规则和精准访问防护规则的拦截指定IP访问请求,有什么差异?
- 如何处理Appscan等扫描器检测结果为Cookie缺失Secure/HttpOnly?
- 如何拦截4层链接对应的IP?
- IPv6防护
- 证书管理
- 防护日志
- 内容安全检测服务
-
产品咨询
- 故障排除
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
构造请求
本节介绍如何构造REST API的请求,并以调用IAM服务的获取用户Token说明如何调用API,该API获取用户的Token,Token可以用于调用其他API时鉴权。
您还可以通过这个视频教程了解如何构造请求调用API:https://bbs.huaweicloud.com/videos/102987。
请求URI
请求URI由如下部分组成。
{URI-scheme} :// {Endpoint} / {resource-path} ? {query-string}
尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。
- URI-scheme:
表示用于传输请求的协议,当前所有API均采用HTTPS协议。
- Endpoint:
指定承载REST服务端点的服务器域名或IP,不同服务不同区域的Endpoint不同,您可以从地区和终端节点获取。
例如IAM服务在“华北-北京四”区域的Endpoint为“iam.cn-north-4.myhuaweicloud.com”。
- resource-path:
资源路径,也即API访问路径。从具体API的URI模块获取,例如“获取用户Token”API的resource-path为“/v3/auth/tokens”。
- query-string:
查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“limit=10”,表示查询不超过10条数据。
例如您需要获取IAM在“华北-北京四”区域的Token,则需使用“华北-北京四”区域的Endpoint(iam.cn-north-4.myhuaweicloud.com),并在获取用户Token的URI部分找到resource-path(/v3/auth/tokens),拼接起来如下所示。
https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens

为查看方便,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,同一个服务的Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。
请求方法
HTTP请求方法(也称为操作或动词),它告诉服务你正在请求什么类型的操作。
- GET:请求服务器返回指定资源。
- PUT:请求服务器更新指定资源。
- POST:请求服务器新增资源或执行特殊操作。
- DELETE:请求服务器删除指定资源,如删除对象等。
- HEAD:请求服务器资源头部。
- PATCH:请求服务器更新资源的部分内容。当资源不存在的时候,PATCH可能会去创建一个新的资源。
在获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为:
POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens
请求消息头
附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。
如下公共消息头需要添加到请求中。
- Content-Type:消息体的类型(格式),必选,默认取值为“application/json”,有其他取值时会在具体接口中专门说明。
- X-Auth-Token:用户Token,可选,当使用Token方式认证时,必须填充该字段。用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。
说明:
API同时支持使用AK/SK认证,AK/SK认证是使用SDK对请求进行签名,签名过程会自动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。
AK/SK认证的详细说明请参见AK/SK认证。
对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添加消息头后的请求如下所示。
POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json
请求消息体
请求消息体通常以结构化格式发出,与请求消息头中Content-type对应,传递除请求消息头之外的内容。若请求消息体中参数支持中文,则中文字符必须为UTF-8编码。
每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。
对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中username为用户名,domainname为用户所属的账号名称,********为用户登录密码,xxxxxxxxxxxxxxxxxx为project的名称,如“cn-north-4”,您可以从地区和终端节点获取,对应地区和终端节点页面的“区域”字段的值。
scope参数定义了Token的作用域,下面示例中获取的Token仅能访问project下的资源。您还可以设置Token作用域为某个账号下所有资源或账号的某个project下的资源,详细定义请参见获取用户Token。
POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxxxxxxxxxxxx" } } } }
到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中“x-subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。