API 安全

最近更新时间:2025-10-27 14:28:42

我的收藏
本文档将为您介绍如何通过 API 安全功能,进行 API 安全策略配置,从而进一步保护 API 接口安全。

背景信息

通过 API 安全功能,您可以添加启用系统内置的 API 防护策略或添加自定义防护策略。

查看是否启用 API 安全

1. 登录 Web 应用防火墙控制台,在左侧导航栏中,单击 API 安全
2. 左上角选择要查看的域名,右侧展示当前域名是否开启 API 安全开关。
说明:
仅购买了 API 安全的实例绑定的域名/CLB对象支持开启 API 安全开关。开启开关后将开始对流量进行分析,预计30分钟后完成分析,展示 API 资产列表及相关统计数据。




入参检测规则

1. API 安全 > 入参检测规则页面,支持开启入参检测规则开关,查看配置的入参检测规则总数、当前启用规则数。关闭入参检测规则开关后,该模块下所有规则均不生效。



2. 添加 API 防护规则,目前支持通过 导入 API 添加 API 两种方式进行增加 API 规则。
导入 API(推荐):根据获取的 API 文档,直接导入文件进行解析。
添加 API:用户根据网站的路径接口,手动添加需要防护的 API 路径。

导入 API(推荐)

1. 在自定义入参检测规则页面,单击导入 API,弹出导入 API 接口弹窗。
2. 在导入 API 接口弹窗中,选择上传文件类型,单击点击上传,传入 API 文件即可。
说明
目前 WAF 支持两种 Swagger 2.0 文件的解析,分别是:YML 文件和 JSON 文件。导入规则说明:
格式:导入 API 描述文件,文件后缀名必须为 .yml 或 .json,单次上传的 API 描述文件不超过100KB。
数量:每次最多可上传创建20条 API,导入已经存在的 API 会默认跳过。
导入创建成功的 API ,可进行编辑,请根据实际情况进行接口确认。

3. 上传文件后, API 安全模块会自动解析 Swagger 2.0 文件中的 API 策略,解析完成后,单击确认导入,即可添加成功。


4. 添加成功后,您可在自定义入参检测规则页面,查看新导入的 API 规则。

添加入参检测规则

1. 在自定义入参检测规则页面,单击添加规则,弹出添加入参检测规则弹窗。
2. 在添加入参检测规则弹窗中,您可以添加对应的 API 安全规则,添加完成后,单击添加

字段说明:
API名称:添加 API 路径,以‘/’开头,注意接口名称+请求方式不能重复,如:/guanjia/waf/config
描述:选填项,API 策略的相关描述。
规则开关:API 安全策略开关,默认为开。当开启开关后,才能对相应 API 策略进行解析,执行后续的观察和拦截动作。
请求方式:目前 API 安全支持四种请求方式:GET、POST、PUT 及 DELETE 方式。
匹配条件:需要您添加5个参数,分别为参数名称、参数位置、参数类型、是否必填(若勾选必填,WAF 会检查请求中,是否含有该参数,若有,则请求正常通过,若没有就会被拦截。)以及备注(可填项),参数位置目前支持 body、query 及 path 三种类型(可根据您业务实际参数所在位置进行选择)。
执行动作:目前支持两种动作,观察和拦截模式。
说明:
建议您添加规则时,先开启观察模式,查看攻击日志是否存在误拦截,确认无误后,再调整为拦截模式。
3. 添加成功后,您可在自定义入参检测规则页面,查看新导入的 API 规则。

字段说明:
规则 ID:成功添加一条 API 规则后,会自动生成一个对应的规则 ID,该 ID 在 API 安全模块具有唯一性,您可根据此 ID 在 攻击日志 中,查找对应的日志。
接口名称(描述):显示配置的 API 名称和描述,API 名称为 API 的实际路径,请按照实际防御域名的路径填写。
来源:来源分为两种,文件解析和手动添加。如果是导入的 API,则显示为文件解析,如果是手动添加的 API,则显示为手动添加。
请求方法:您配置的请求方法,分为 GET、POST、PUT 及 DELETE 四种。
API 参数:配置的 API 的参数列表,最多支持30个。
执行动作:分为观察和拦截两种。
规则开关:API 规则的启用状态,若关闭开关,则表示不启用。如需同时开启或关闭多个开关,可选择多个 API 规则,在列表上方,单击批量启用批量禁用,进行批量操作。
修改时间:API 防护规则最新更新的时间。
操作:对指定的防护 API 操作说明,包括编辑及删除规则两种操作。如需批量删除规则,可选择多个 API 规则,在列表上方,单击批量删除,即可进行批量操作。

限流规则

说明:
限流规则功能目前在灰度中,如需开通体验,请联系商务经理或通过 工单 联系我们。
1. API 安全 > 限流规则页面,支持开启限流规则开关,查看当前的限流规则总数、当前启用规则数。关闭限流规则开关后,该模块下所有规则均不生效。



2. 单击添加规则,正确配置对应的参数,单击确定,即可创建对应检测规则,单个域名最多添加50条规则。

字段说明:
域名:展示当前域名。
规则名称:支持自定义输入规则名称。
限流范围:支持针对 API 或当前域名进行限流。
API:选择应用于 API 时,在限流对象中填写需要进行限流的 API 资产路径,支持回车分隔多个 API 资产,最长128个字符。
当前域名:选择应用于当前域名时,对域名整站计算访问频次,超出规定频次触发限流。
限流对象:
手动填写:选择手动填写时,支持配置检测路径范围,配置后将检测该路径下所有 API 资产。支持通过属于规则​或正则表达式匹配​灵活定义检测范围。
从现有 API 资产中选择:支持从现有API资产中一键选择需要配置规则的多个API。支持按近30天调用量排序、按数据标签筛选。
匹配方式:
访问频次:必填,超出规定频次触发限流。
请求方式:可选,设置需要进行限流的请求方式。支持属于、不属于、正则匹配三种逻辑符号,回车区隔多个匹配内容。
Header 参数值:可选,设置需要进行限流的请求特征。支持属于、不属于、正则匹配三种逻辑符号,回车区隔多个匹配内容。
Header 参数名:可选,设置需要进行限流的请求特征。支持每个参数值,属于、不属于、正则匹配三种逻辑符号,回车区隔多个匹配内容。选择每个参数值时,针对该 Header 参数名出现的每个参数值分别按设置的访问频次进行限流。
GET 参数值:可选,设置需要进行限流的请求特征。支持属于、不属于、正则匹配三种逻辑符号,回车区隔多个匹配内容。
GET 参数名:可选,设置需要进行限流的请求特征。支持每个参数值,属于、不属于、正则匹配三种逻辑符号,回车区隔多个匹配内容。选择每个参数值时,针对该 GET 参数名出现的每个参数值分别按设置的访问频次进行限流。
POST 参数值:可选,设置需要进行限流的请求特征。支持属于、不属于、正则匹配三种逻辑符号,回车区隔多个匹配内容。
POST 参数名:可选,设置需要进行限流的请求特征。支持每个参数值,属于、不属于、正则匹配三种逻辑符号,回车区隔多个匹配内容。选择每个参数值时,针对该 POST 参数名出现的每个参数值分别按设置的访问频次进行限流。
IP 归属地:可选,设置需要进行限流的请求 IP 归属地。支持属于、不属于两种逻辑符号,支持在列表中选择多个地域进行匹配,地域粒度支持国家、地区、省、市等。
访问频次:必填,超出规定频次触发限流。支持对每个 URL 和全部 URL 进行限流。当在限流范围中配置多个 API 资产时,支持对全部 URL 共同计算访问频次,超出规定频次触发限流。
执行动作:对超出访问频次的请求,支持选择观察、拦截两种限流策略。
观察:仅记录攻击日志,不进行拦截。
重定向:记录攻击日志,且请求将重定向到指定页面。符合匹配条件的会话请求将执行重定向操作,将请求重定向到指定URL,但仅支持重定向至当前域名下的URL。
拦截:记录攻击日志,且进行拦截。支持返回状态码429和自定义返回页面两种形式。
优先级:请输入1-100的整数,数字越小,代表这条规则的执行优先级越高;相同优先级下,创建时间越晚,优先级越高。
限流顺序:支持调整限流和防护的顺序。包括API限流优先和安全防护优先两种形式。

安全事件检测规则

1. API 安全 > 安全事件检测规则页面,支持开启安全事件检测规则开关,查看当前的安全事件检测规则总数、当前启用规则数。关闭安全事件检测规则开关后,该模块下所有规则均不生效。

2. 添加安全事件检测规则,目前支持启用系统内置规则和添加自定义规则两种方式检测 API 安全事件。
启用系统内置规则:开启 API 安全开关后,默认启用系统内置规则,检测 API 资产是否存在对应的安全事件告警。
添加自定义规则:开启 API 安全开关后,可以根据业务场景自定义安全事件检测规则,检测 API 资产是否存在对应的安全事件告警。

启用系统内置规则

系统内置规则允许开启或关闭规则检测功能,但不支持规则的编辑或删除。默认可检测31类常见的 API 安全事件。


添加自定义规则

1. 单击添加规则,支持添加基于关键字匹配、字符匹配、正则匹配三种方式识别的自定义敏感检测规则。

2. 在添加规则的页面中,正确配置对应的参数,单击确定,即可创建对应检测规则。

字段说明:
事件名称:支持自定义输入,最长10个字符。
事件详情:用户自定义输入事件详情,事件详情将展示在命中后生成的事件当中,便于区分事件用途和影响。
检测对象:
手动填写:选择手动填写时,支持配置检测路径范围,配置后将检测该路径下所有 API 资产。支持通过属于、包含、前缀匹配、后缀匹配四个逻辑符号匹配检测范围。
从现有的 API 资产中选择:从穿梭框中选择资产列表中已发现的 API 资产,支持按近30天调用量排序、按数据标签筛选。
当前域名下所有 API:选择域名时,下方无需选择 API 名称,针对该域名下所有 API 资产进行检测。
匹配方式:至少需要添加一条匹配条件,最多可以添加5条。
匹配字段
匹配参数说明
逻辑符号
匹配内容说明
请求方式
-
属于
不属于
请选择或者输入自定义内容
Header 参数名
-
存在参数
不存在参数
属于
不属于
前缀匹配
后缀匹配
回车分隔多个值,最多输入20个
Header 参数值
请输入参数名
包含
不包含
属于
不属于
前缀匹配
后缀匹配
回车分隔多个值,最多输入20个
长度大于
长度等于
长度小于
请输入0-1000之间的整数
GET 参数名
-
存在参数
不存在参数
属于
不属于
前缀匹配
后缀匹配
回车分隔多个值,最多输入20个
GET 参数值
请输入参数名
包含
不包含
属于
不属于
前缀匹配
后缀匹配
回车分隔多个值,最多输入20个
长度大于
长度等于
长度小于
请输入0-1000之间的整数
POST 参数名
-
存在参数
不存在参数
属于
不属于
前缀匹配
后缀匹配
回车分隔多个值,最多输入20个
POST 参数值
请输入参数名
包含
不包含
属于
不属于
前缀匹配
后缀匹配
回车分隔多个值,最多输入20个
长度大于
长度等于
长度小于
请输入0-1000之间的整数
Cookie 参数名
-
存在参数
不存在参数
属于
不属于
前缀匹配
后缀匹配
回车分隔多个值,最多输入20个
Cookie 参数值
请输入参数名
包含
不包含
属于
不属于
前缀匹配
后缀匹配
回车分隔多个值,最多输入20个
长度大于
长度等于
长度小于
请输入0-1000之间的整数
Response 参数名
-
存在参数
不存在参数
属于
不属于
前缀匹配
后缀匹配
回车分隔多个值,最多输入20个,CLB型实例接入域名暂不支持该字段配置
Response 参数值
请输入参数名
包含
不包含
属于
不属于
前缀匹配
后缀匹配
回车分隔多个值,最多输入20个,CLB型实例接入域名暂不支持该字段配置
长度大于
长度等于
长度小于
请输入0-1000之间的整数
User-Agent
-
包含
不包含
属于
不属于
回车分隔多个值,最多输入20个
响应状态码
-
属于
不属于
请选择或者输入自定义的内容,CLB型实例接入域名暂不支持该字段配置
功能场景
-
属于
不属于
请选择功能场景标签
鉴权属性
-
等于
是/否
请求敏感数据类型
-
属于
不属于
属于/不属于:请选择敏感数据类型
响应敏感数据类型
-
属于
不属于
属于/不属于:请选择敏感数据类型,CLB型实例接入域名暂不支持该字段配置
数据统计:可选,默认不选择任何条件,最多选择5个统计字段。
匹配字段
匹配参数
逻辑符号
匹配内容说明
响应状态码
请选择或者输入自定义的内容
数值大于
请输入0-100000之间的整数,CLB 型实例接入域名暂不支持该字段配置
Header 参数值
请输入参数名
去重大于
去重小于
请输入0-1000之间的整数
GET 参数值
请输入参数名
去重大于
去重小于
请输入0-1000之间的整数
POST 参数值
请输入参数名
去重大于 去重小于
请输入0-1000之间的整数
Cookie 参数值
请输入参数名
去重大于 去重小于
请输入0-1000之间的整数
请求敏感数据类型
-
去重大于
请输入0-100之间的整数
响应敏感数据类型
-
去重大于
请输入0-100之间的整数,CLB型实例接入域名暂不支持该字段配置
统计频次:支持输入1-100000次,支持输入1-20分钟。
风险等级:支持选择超高危、高危、中危、低危,标识对应安全事件的风险等级。
规则开关:支持开启或关闭该条规则。
3. 添加规则后,可以编辑或删除对应的规则。


敏感检测规则

1. API 安全 > 敏感检测规则页面,支持开启敏感检测规则开关,查看当前的敏感检测规则总数、当前启用规则数。关闭敏感检测规则开关后,该模块下所有规则均不生效。

2. 添加 API 敏感检测规则,目前支持启用系统内置规则和添加自定义规则两种方式检测 API 敏感信息。
启用系统内置规则:开启 API 安全开关后,默认启用系统内置规则,检测请求中是否涉及对应敏感信息。
添加自定义规则:开启 API 安全开关后,可以根据业务场景自定义敏感检测规则,检测请求中是否涉及对应敏感信息。

启用系统内置规则

系统内置规则允许开启或关闭规则检测功能,但不支持规则的编辑或删除。默认可检测19类常见的敏感信息。


添加自定义规则

1. 单击添加规则,支持添加基于关键字匹配、字符匹配、正则匹配三种方式识别的自定义敏感检测规则。

2. 在添加规则的弹窗中,正确配置对应的参数,单击确定,即可创建对应检测规则。



字段说明:
规则名称:支持自定义输入,不允许重复,最长10个字符。
参数位置:支持多选 headers、body、query、cookie位置进行检测。
匹配条件及匹配内容:
关键字匹配:识别是否包含关键字;选择关键字匹配时,支持选择匹配包含其一(OR)或包含全部(AND),回车输入多个关键字,最多输入20个。
字符匹配:识别内容长度范围及是否为特定字符类型组成;选择字符匹配时,支持选择大写字母、小写字母、数字三个字符类型,可以多选;选择后输入字符长度范围,最小6个字符,最大128个字符。
正则匹配:识别是否符合特定正则表达式;选择正则匹配时,支持回车输入多个正则表达式进行匹配,最多输入20个。
参数泛化:选择泛化后,对应的 API 资产参数样例中该参数值将展示泛化后数据。
风险等级:支持选择高危、中危、低危,标识对应敏感信息的风险等级。
规则开关:支持开启或关闭该条规则。
3. 添加规则后,可以编辑或删除对应的规则。



鉴权凭据识别规则

1. API 安全 > 鉴权凭据识别规则页面,支持开启鉴权凭据识别开关,开启后可以针对特定的 API 或域名配置用户鉴权的参数,以识别资产是否存在未授权或越权风险。关闭鉴权凭据识别开关后,该模块下所有自定义规则均不生效,默认按系统内置模型进行识别。
2. 单击添加规则,正确配置对应的参数,单击确定,即可创建对应检测规则。

字段说明:
规则名称:支持自定义输入,不允许重复,最长10个字符。
应用范围:支持选择应用于多个 API 或当前域名。
API:选择应用于 API 时,填写需要自定义鉴权凭据的 API 资产路径,支持回车分隔多个 API 资产,最长128个字符。
当前域名:选择应用于当前域名时,配置对域名下所有 API 资产生效。
鉴权参数位置:指定识别特定位置(QUERY、BODY、COOKIE 或 HEADERS)的参数名作为会话标识,以判断请求中是否携带对应的鉴权凭据。
鉴权参数:取值标识,以.字符区隔各个层级的参数,示例如下:
test:识别 JSON 字符串中 test 参数为鉴权参数。
test1.test2:识别 JSON 字符串中 test1包含的 test2参数为鉴权参数。
规则开关:支持开启或关闭该条规则。

功能场景识别规则

API 安全 > 功能场景识别规则页面,支持开启功能场景识别规则开关,根据指定规则分析资产所属的功能场景标签并在 API 资产列表中标注。





启用系统内置规则

系统内置规则允许开启或关闭规则检测功能,但不支持规则的编辑或删除。默认可检测12类常见的场景。


添加自定义规则

1. 单击添加规则,正确配置对应的参数,单击确定,即可创建对应检测规则。

字段说明:
场景名称:支持自定义输入,不允许重复,最长10个字符。
匹配方式:
匹配字段:支持配置 API 名称、GET 参数名、GET 参数值、POST 参数名、POST 参数值、Cookie 参数名、Cookie 参数值、Header 参数名、Header 参数值等字段。
逻辑符号:支持等于、包含、正则匹配三种逻辑符号,回车区隔多个匹配内容。
规则开关:支持开启或关闭该条规则。
2. 添加规则后,可以编辑或删除对应的规则。


API 资产发现规则

1. API 安全 > API 资产发现规则页面,支持开启 API 资产发现规则开关,开启后可以针对特定的 API 路径,按照输入的正则表达式进行匹配。关闭API资产发现规则开关后,该模块下所有自定义规则均不生效,默认按系统内置模型进行资产发现。
说明:
默认不需设置,未自定义的情况下会按照系统内置的模型聚合 API 。
如 API 资产聚合结果不符合用户预期,则可以使用自定义聚合规则修正聚合结果。命中自定义的聚合规则后,下次资产更新会淘汰历史数据,按最新聚合结果展示。



2. 单击添加规则,正确配置对应的参数,单击确定,即可创建对应检测规则。


字段说明:
规则名称:支持自定义输入,不允许重复,最长10个字符。
API 名称:填写需要自定义聚合的 API 资产路径,最长128个字符。
请求方式:支持多选 GET、POST、PUT、DELETE 请求方式。
匹配内容:输入正则表达式进行匹配,最长200个字符。
规则开关:支持开启或关闭该条规则。

规则配置案例

入参检测规则
API 限流规则
敏感检测规则
API 资产聚合规则
鉴权凭据识别规则
1. 配置场景:针对 API 接口/test/123,调用需要输入参数 user_idapi_keydomain ,对输入参数不符合入参规范的请求配置拦截策略。



2. 配置效果:
请求中如果未传递必填的参数user_idapi_key ,将被拦截。
请求中如果参数 user_idapi_keydomain 的参数类型与配置类型不符,将被拦截。
场景一:对不同的调用方进行限流
根据Header参数test标记不同的用户,对不同的用户进行分级限流,普通用户默认限流2000QPS,特殊用户单独定制规则限流10000QPS。

兜底规则:设置针对test参数出现的每个参数值分别限流2000QPS,优先级低于定制规则。



定制规则:对test参数出现的参数值test1和参数值test2分别限流10000QPS,优先级高于兜底规则。


场景二:对域名整站和关键接口进行限流
根据 API 或当前域名设置访问频次和相关访问特征,对符合匹配方式的请求进行统计,超出规定频次触发限流。
1. 配置场景:业务禁止携带敏感user_id内容,对携带敏感内容的资产进行检测,推动内部整改。



2. 配置效果:如果请求中携带敏感信息,将对资产做敏感标签标记。如果发现存在相关数据泄露风险,将生成 API 风险事件。
1. 配置场景:针对 API 资产列表中资产聚合不符合预期的场景,可以通过规则配置进行修正。如配置符合匹配内容中输入的正则表达式/test1/test2/page/[A-Za-z0-9]的 URL 统一聚合为 API 资产/test/test/page



2. 配置效果:配置后,所有符合正则表达式的 URL 均聚合为配置的 API 资产/test1/test2/page,且清除不符预期的历史数据。
1. 配置场景:针对API接口/test,使用 BODY 中的参数token作为判断是否鉴权的凭据,以识别资产是否存在未授权或越权风险。


2. 配置效果:配置规则后,将优先按照自定义的鉴权凭据进行识别。如相关 API 资产有越权风险,将生成 API 风险事件。