ESA与WAF 3.0是什么关系?
ESA已原生集成基于WAF 3.0的Web应用防火墙防护能力。站点接入ESA后,ESA会自动为站点提供WAF安全防护,无需单独购买和部署WAF 3.0产品。
ESA是否支持串联独立WAF?
边缘安全加速ESA支持DNS→ESA→独立WAF的串联部署架构。将ESA的回源地址配置为独立WAF的服务地址,流量先经过ESA加速和基础防护,再转发至独立WAF进行深度安全检测。
配置方式:登录ESA控制台,在站点DNS记录中将记录值/源站设置为独立WAF的IP地址(A/AAAA记录)或域名(CNAME记录)。
ESA内置WAF包含托管规则、自定义规则、频次控制等功能,适用于大多数Web防护场景。如需独立WAF的高级自定义防护能力,可采用上述串联架构。
ESA遭受大范围攻击怎么办?
打开WAF配置,将概述页签中的智能限频防护等级调整到严格,执行动作调整为拦截。
进入安全分析页签中,在数据总览部分,查看异常的客户端IP,利用自定义规则拦截这些IP。
进入安全分析页签中,在概览中查看请求分析的数据。针对异常数据创建WAF自定义规则拦截。例如,在Referer中发现值为
-的请求最多,则创建拦截空Referer的请求和Referer为-的请求(当请求存在Referer头,但是值为空时,在控制台上会以-展示)。
为什么我ESA中的WAF配置不生效?
检查配置的规则是否正确
规则表达式的正确性直接影响WAF规则的执行效果。请确保以下几点:
匹配字段:确认您使用的匹配字段是否符合预期。例如:
URI包含查询字符串(如/content?page=1234),而URI路径仅包含路径部分(如/content)。如果规则中使用了
URI等于/content,但实际请求中带有查询字符串,则规则不会生效。
匹配运算符:检查所选运算符是否适合当前场景(如“等于”、“包含”等)。
匹配值:确保匹配值与实际请求一致。
检查请求是否命中了白名单规则
IP访问规则和白名单规则的优先级高于其他规则。如果请求命中了IP访问规则的放行策略或白名单规则,则后续的WAF规则将被跳过,从而导致配置看似不生效。排查步骤如下:
在安全分析模块中,根据筛选条件过滤出异常请求。
查看采集日志模块中该请求命中的规则信息。
如果最终执行防护规则的是IP访问规则(最终执行防护动作为放行)或白名单规则,则证明请求因命中放行规则而跳过了其他规则。
解决方法:调整IP访问规则的放行策略和白名单规则,确保其范围不会覆盖需要防护的请求。
检查请求是否绕过ESA直接访问源站
如果攻击请求未经过ESA,而是直接访问源站,WAF规则无法生效。排查步骤如下(以Nginx为例):
获取请求IP地址:
打开Nginx配置文件(默认路径为
/etc/nginx/nginx.conf),查看access.log的格式及位置。查看
access.log文件,提取请求的$remote_addr值,$remote_addr字段表示直接连接到Nginx的IP地址。
验证IP来源:
在ESA控制台选择站点管理,在站点列单击目标站点。
在左侧导航栏,选择安全防护 > 源站防护。
在源站防护页面,单击配置。
打开状态开关,在弹出的对话框中勾选我已确认风险。,单击开启。
将日志中获取的IP同
IPv4列表中的IP(IPv4列表中是IP区段)进行匹配。若匹配上,证明源站的请求是从ESA来的;反之,则证明请求没有经过ESA,而是直接请求的源站。
解决方法:启用源站防护功能,将ESA的节点IP列表配置到源站防火墙规则中,仅允许白名单中的流量访问源站。
如何拦截空Referer请求和不带Referer的请求?
拦截空Referer请求
定义:
“空Referer请求”是指HTTP请求中包含 Referer 字段,但其值为空(即 Referer: "")。这种情况通常由某些浏览器或代理工具导致。安全分析概览页中Referer选项的-就是空Referer请求。
解决方法:
通过概述页签提供的拦截空Referer请求模板快速创建规则。
拦截不带Referer的请求
定义:
“不带Referer的请求”是指HTTP请求中完全不包含 Referer 字段。这种情况可能由攻击者故意构造,也可能因某些客户端(如隐私模式浏览器)默认行为导致。
解决方法:
如果要拦截不存在Referer的请求,可以使用自定义规则。匹配规则填写Referer不存在。
匹配规则中的URI、URI路径、URI查询字符串有什么区别?
一个URI 的完整结构可以分为以下几个部分:
scheme:[//host]path[?query][#fragment]scheme: 协议类型,例如
http、https、ftp等。host: 主机名,例如
www.example.com。path: 资源在服务器上的路径,例如
/users/profile。query: 查询字符串,用于传递参数,例如
?id=123&name=John。fragment: 片段标识符,用于定位页面中的特定部分,例如
#section1。
三者区别如下:
属性 | URI | URI路径 | URI查询字符串 |
定义 | 唯一标识资源的完整字符串 | 指定资源在服务器上的位置 | 向服务器传递额外参数的部分 |
位置 | 整个 URI | 在 | 在 |
示例 |
|
|
|
如何查看请求被哪个规则拦截了?
在响应拦截界面上,可以看到拦截的规则名称(Denied by xxx)和规则ID(RuleID)。可以通过规则名称确定被哪一种规则拦截,然后再通过拦截页面的规则ID和控制台的规则ID匹配,确定请求被哪个规则拦截。
在安全分析的采样日志中,同样可以看到请求是否被拦截以及拦截规则。
如何获取安全防护规则的ID?
前往对应的安全防护规则,即可在规则列表中获取对应规则的ID。
如何快速拦截大量的IP
准备将要拦截的IP/网段,中间采用英文逗号
,分割(可以从安全分析页面通过分析获取目标 IP)。进入ESA的分组控制台,点击新建分组,将准备好的IP填入分组。
使用自定义规则拦截IP。在创建自定义规则时,匹配项选择客户端IP,匹配逻辑选择在分组中,匹配值选择上一步创建的分组名称。
点击确定,拦截规则即可创建成功并生效。
配置的规则会在哪个域名生效?
如果创建的规则中,声明了主机名的匹配规则,则该规则只会对命中主机名规则的域名生效。例如,下面的示例表示只有域名为
www.example.com和api.example.com的请求,并且不存在Referer头的请求才会被拦截。如果创建的规则中,匹配规则没有声明主机名的匹配规则,则站点下所有的域名的请求只要命中规则上,都会生效。
WAF 设置 IP 黑名单或托管规则后,为何控制台拦截量统计较少?
确认返回状态码为 403 即表示已拦截成功。控制台统计可能存在延迟,可检查离线日志中 403 与 200 状态码的数量核实。
如何清除或缩短 ESA WAF 对已拦截 IP 的默认拦截时间?
目前不支持手动删除拦截记录或缩短拦截时间,需等待自动解封。
ESA WAF 白名单规则中匹配以 /api/ 开头的 URL 应使用什么语法?
要匹配所有以 /api/ 开头的 URL 请求,可在匹配条件中编辑表达式为 (starts_with(http.request.uri.path, "/api/")) 。
WAF IP 访问规则白名单上限是按单个域名计算还是账户共用?
WAF IP 访问规则白名单的配额按账户套餐下所有站点(域名)共用计算,并非针对单个域名独立计算。例如企业版默认上限为 400 条,由该账户下所有站点共享。
IP 访问规则配额达到上限(错误码 PhaseIpAccessRule.PerInstance.Length.OverQuota)或白名单数量不足时,是否支持申请提升配额?
目前暂不支持单独调升 IP 访问规则或白名单的特定项配额。建议通过创建“网段分组”并将分组添加到白名单的方式来规避条目限制,这样既可以绕过直接添加 IP 的配额瓶颈,也便于后续批量维护管理。
IP 白名单规则显示超出配额但实际未使用怎么办?
该情况通常由配额按账户维度共用导致,请检查账户下其他站点的 IP 规则占用情况。如确认账户整体未超限但仍报错,请联系我们并提供站点信息以便后台排查数据一致性。
在 WAF 中拦截恶意 IP 后,该 IP 是否无法再发起 DDoS 攻击?
是的。在 WAF 中将恶意 IP 加入黑名单后,该 IP 的请求将在边缘节点被直接拒绝,无法再访问业务源站,从而阻断该 IP 发起的进一步 DDoS 攻击请求。
病毒库和特征库在哪里查看?
ESA WAF 不提供独立的病毒库或特征库版本查看入口,也不提供对应的版本号或更新日志。防护规则由阿里云自动更新,您无需手动维护或升级规则库。
如需查看和配置安全策略,登录ESA 控制台,选择目标站点,在左侧导航栏选择安全防护 > WAF,在托管规则页签中查看和配置。托管规则由阿里云智能托管,用于防护 OWASP 攻击和最新的源站漏洞攻击。
配置 IP 相关匹配条件时,应该使用哪个字段来防止 IP 伪造?
自定义规则的匹配字段中,客户端IP(ip.src)与X-Forwarded-For(http.x_forwarded_for)是两个语义不同的独立匹配字段:客户端IP 取自与 ESA 建立连接的客户端 IP,不受客户端请求头影响;X-Forwarded-For 是 HTTP 请求头中的字段,可以被客户端任意伪造。因此配置基于 IP 的匹配条件(如地域限制、IP 黑白名单)时,建议优先使用客户端IP 作为匹配字段,避免使用X-Forwarded-For,以防止攻击者通过伪造该请求头绕过拦截规则。
如果您的源站需要获取客户端真实 IP,建议在转换规则的托管转换中开启添加真实客户端 IP 请求头,默认会在回源请求中添加名为 ali-real-client-ip 的请求头(标头名称可自定义),源站侧读取该请求头即可获取真实客户端 IP,而不依赖可能被伪造的 X-Forwarded-For 头。
如果您需要避免客户端提交的 X-Forwarded-For 头传递到源站造成干扰,可以在转换规则中配置修改出站请求头功能,对指定请求头执行新增、删除或修改操作。
为什么配置了地域/国家拦截规则,但非目标地区 IP 仍能访问?
为什么基于国家/地区的拦截规则会出现误拦截或无法识别 Unknown 地区?
IP 归属地信息(洲、国家/地区、省份、运营商)无法做到 100% 准确,且 VPN 或代理服务会改变 IP 的归属地显示,导致地理位置拦截失效。
私有 IP 段(如 100.64.0.0/10)及代理 IP 可能被识别为 Unknown 地区,ESA 不支持直接拦截 Unknown 地区。
建议:
在地域限制规则中增加
User-Agent或Referer的组合条件(例如:非指定地域 AND User-Agent 不是特定值),降低单独依赖地域判断带来的误报。出现误拦截时,可配置白名单规则放行正常 IP。
访问出现 403 Forbidden 错误如何排查?
访问返回 403 Forbidden,常见原因包括:命中了 WAF 的自定义规则拦截动作、命中了 IP 黑名单、触发了 Referer 防盗链规则、或触发了地域/国家访问限制等访问控制策略。
排查时,建议先获取完整的 HTTP 响应头信息,响应头中通常会包含命中规则的相关标识,可用于定位具体触发的规则;然后登录 ESA 控制台,在安全防护模块下逐一检查自定义规则的匹配条件与执行动作、IP 访问规则(黑名单)配置,以及缓存资源相关配置,确认是哪条规则或策略导致了本次拦截。