文档首页/ Web应用防火墙 WAF/ 用户指南/ 配置防护策略/ 配置精准访问防护规则定制化防护策略
更新时间:2025-07-09 GMT+08:00
分享

配置精准访问防护规则定制化防护策略

精准访问防护规则可对常见的HTTP字段(如IP、路径、Referer、User Agent、Params等)进行条件组合,用来筛选访问请求,并对命中条件的请求设置仅记录、放行或拦截操作。同时支持“JS挑战”验证,即WAF向客户端返回一段正常浏览器可以自动执行的JavaScript代码。如果客户端正常执行了JavaScript代码,则WAF在一段时间(默认30分钟)内放行该客户端的所有请求(不需要重复验证),否则拦截请求。

精准访问防护规则可以添加引用表,引用表防护规则对所有防护域名都生效,即所有防护域名都可以使用精准防护规则的引用表。

前提条件

约束条件

  • 云模式入门版不支持该功能。
  • 云模式入门版和标准版不支持“全检测”检测模式。
  • 云模式入门版和标准版不支持引用表管理功能。
  • “云模式-ELB接入”方式不支持“Response Code”、“Response Length”、“Response Time”、“Response Header”和“Response Body”字段,且“云模式-CNAME”仅企业版支持响应字段。
  • 当精准访问防护规则的“防护动作”设置为“拦截”时,您可以配置攻击惩罚标准封禁访问者指定时长。配置攻击惩罚后,如果访问者的IP、Cookie或Params恶意请求被拦截时,WAF将根据攻击惩罚设置的拦截时长来封禁访问者。
  • 配置的“路径”“内容”不能包含特殊字符(<>*)。
  • 添加或修改防护规则后,规则生效需要等待几分钟。规则生效后,您可以在“防护事件”页面查看防护效果。
  • 如果WAF前有七层的反向代理(例如ELB),且其指纹会随Header传递给WAF时,“条件”字段配置为“TLS指纹(JA3)”“TLS指纹(JA4)”后,还需要为独享模式接入的防护域名配置JA3/JA4指纹标记,JA3/JA4指纹防御功能才会生效。

应用场景

精准访问防护支持业务场景定制化的防护策略,可用于盗链防护、网站管理后台保护等场景。

配置精准访问防护规则

  1. 登录管理控制台
  2. 在管理控制台左上角,单击图标,选择区域或项目。
  3. 在页面左上方,单击图标,选择安全与合规 > Web应用防火墙 WAF
  4. (可选) 如果您已开通企业项目,在左侧导航栏上方,单击“按企业项目筛选”下拉框,选择您所在的企业项目。完成后,页面将为您展示该企业项目下的相关数据。
  5. 在左侧导航栏,单击“防护策略”
  6. 单击目标策略名称,进入目标策略的防护配置页面。
  7. 选择“精准访问防护”配置框,用户可根据自己的需要开启或关闭精准访问防护策略。

    • :开启状态。
    • :关闭状态。

  8. “精准访问防护配置”页面,设置“检测模式”

    精准访问防护规则提供了两种检测模式:
    • 短路检测:当用户的请求符合精准防护中的拦截条件时,便立刻终止检测,进行拦截。
    • 全检测:当用户的请求符合精准防护中的拦截条件时,不会立即拦截,它会继续执行其他防护的检测,待其他防护的检测完成后进行拦截。

  9. “精准访问防护”规则配置列表左上方,单击“添加规则”
  10. 在弹出的对话框中,根据表1添加精准访问防护规则。

    图1的配置为例,其含义为:当用户访问目标域名下包含“/admin”的URL地址时,WAF将拦截该用户访问目标URL地址。

    如果不确定配置的精准访问防护规则是否会使WAF误拦截正常的访问请求,您可以先将精准访问防护规则的“防护动作”设置为“仅记录”,在“防护事件”页面查看防护事件,确认WAF不会误拦截正常的访问请求后,再将该精准访问防护规则的“防护动作”设置为“拦截”

    图1 添加精准访问防护规则
    表1 规则参数说明

    参数

    参数说明

    取值样例

    规则名称

    自定义规则名称。

    waftest

    规则描述

    可选参数,设置该规则的备注信息。

    --

    条件列表

    配置防护规则要匹配的请求特征。请求一旦命中该特征,WAF则按照配置的规则处置该请求。

    • 至少需要配置一项,本条规则才能生效。配置多个条件时,需同时满足,本条规则才生效。
    • 单击“添加条件”增加新的条件,最多可添加30个条件。
    • 支持添加条件分组。

      该功能为公测功能,需提交工单申请开通。

      • 组内生效条件:命中组内其中一个条件,该组条件生效。单击“添加条件”,可增加一个组内限速条件。
      • 组间生效条件:
        • and分组生效:所有and分组同时生效,该组合生效。单击“添加and分组”,可增加一个and分组。
        • or分组生效:其中一个分组生效,该组合即可生效。单击“添加or分组”,可增加一个or分组。
    条件设置参数说明如下:
    • 字段

      如果WAF前有七层的反向代理(例如ELB),且其指纹会随Header传递给WAF时,“条件”字段配置为“TLS指纹(JA3)”“TLS指纹(JA4)”后,还需要为独享模式接入的防护域名配置JA3/JA4指纹标记,JA3/JA4指纹防御功能才会生效。

    • 子字段:当字段选择“IPv4”“IPv6”“Params”“Cookie”“Response Header”或者“Header”时,请根据实际使用需求配置子字段。

      “字段”选择“Response Header”或者“Header”,且“子字段”“所有子字段”“任意子字段”时,支持“子字段大小写敏感”

      须知:

      子字段的长度不能超过2048字符。

    • 逻辑:在“逻辑”下拉列表中选择需要的逻辑关系。
      说明:
      • 选择“包含任意一个”“不包含任意一个”“等于任意一个”“不等于任意一个”“前缀为任意一个”“前缀不为任意一个”“后缀为任意一个”或者“后缀不为任意一个”时,“内容”需要选择引用表名称,创建引用表的详细操作请参见创建引用表对防护指标进行批量配置
      • “不包含任意一个”“不等于任意一个”“前缀不为任意一个”“后缀不为任意一个”是指当访问请求中字段不包含、不等于、前/后缀不为引用表中设置的任何一个值时,WAF将进行防护动作(拦截、放行或仅记录)。例如,设置“路径”字段的逻辑为“不包含所有”,选择了“test”引用表,如果“test”引用表中设置的值为test1、test2和test3,则当访问请求的路径不包含test1、test2或test3时,WAF将进行防护动作。
    • 内容:输入或者选择条件匹配的内容。

      “字段”配置为“路径”“User Agent”“Params”“Cookie”“Referer”“Header”“Response Header”“Response Body”“Request Body”时,支持配置大小写敏感。开启后,系统在检测配置的内容时,将区分大小写。能够帮助系统更准确地识别和处理各种请求,从而有效提升策略的精确度和有效性。

      说明:

      具体的配置请参见表1

    • “字段”“路径”“逻辑”“包含”“内容”“/admin/”
    • “字段”“User Agent”“逻辑”“前缀不为”“内容”“mozilla/5.0”
    • “字段”“IP”“逻辑”“等于”“内容”“192.168.2.3”
    • “字段”“Cookie[key1]”“逻辑”“前缀不为”“内容”“jsessionid”

    深度检测

    当条件列表中配置了“字段”为如下字段时:
    • 路径:“内容”支持“大小写敏感”
    • User Agent:“内容”支持“大小写敏感”
    • Params:“内容”支持“大小写敏感”
    • Cookie:“内容”支持“大小写敏感”
    • Referer:“内容”支持“大小写敏感”
    • Header:“子字段”支持“大小写敏感”“内容”支持“大小写敏感”

    开启“深度检测”后,可实现“子字段”“内容”的解码和忽略大小写后再匹配条件限制。深度检测支持Base64解码。

    -

    防护动作

    • 拦截:表示拦截命中规则的请求,并向发起请求的客户端返回拦截响应页面。WAF默认使用统一的拦截响应页面,您也可以自定义拦截响应页面。
    • 放行:表示不拦截命中规则的请求,直接放行。
    • 仅记录:表示不拦截命中规则的请求,只通过日志记录请求命中了规则。您可以通过WAF日志,查询命中当前规则的请求,分析规则的防护效果。例如,是否有误拦截等。
    • JS挑战:表示WAF向客户端返回一段正常浏览器可以自动执行的JavaScript代码。如果客户端正常执行了JavaScript代码,则WAF在一段时间(默认30分钟)内放行该客户端的所有请求(不需要重复验证),否则拦截请求。
      说明:
      • 云模式-ELB接入不支持该防护动作。
      • 请求的Referer跟当前的Host不一致时,JS挑战不生效。
    • 高阶人机验证:表示超过“限速频率”后弹出验证码,进行人机验证。如果验证通过,则在有效期内放行该请求;如果验证不通过,则重新刷新验证码再次进行验证。相比于人机验证,高阶人机验证体验感更好,更安全。
      说明:
      • 云模式-ELB接入不支持该防护动作。
      • “防护动作”设置为“高阶人机验证”前,请确认一个客户端IP的请求只会到达同一台引擎,否则会多次重复认证导致认证无法通过。
      • 客户端完成一次验证之后会获取一个Token,在该Token有效期内的访问都会被允许。为避免攻击者使用该Token重复执行攻击,建议额外配置一条超过一定请求阈值则拦截的策略。

    拦截

    Token有效期

    “防护动作”选择“JS挑战”“高阶人机验证”后,Token有效期默认为1,800秒,支持自定义为60~86,400秒。

    60秒

    攻击惩罚

    “防护动作”设置为“拦截”时,您可以设置攻击惩罚标准。设置攻击惩罚后,当访问者的IP、Cookie或Params恶意请求被拦截时,WAF将根据惩罚标准设置的拦截时长来封禁访问者。

    支持一键解封攻击惩罚。具体操作,请参见一键解封攻击惩罚标准

    长时间IP拦截

    优先级

    设置该条件规则检测的顺序值。如果您设置了多条规则,则多条规则间有先后匹配顺序,即访问请求将根据您设定的精准访问控制规则优先级依次进行匹配,优先级较小的精准访问控制规则优先匹配。

    您可以通过优先级功能对所有精准访问控制规则进行排序,以获得最优的防护效果。

    须知:

    如果多条精准访问控制规则的优先级取值相同,则WAF将根据添加防护规则的先后顺序进行排序匹配。

    5

    生效模式

    用户可以选择“立即生效”或者自定义设置生效时间段。

    自定义设置的时间只能为将来的某一时间段。

    “立即生效”

    拦截页面

    “防护动作”选择“拦截”时,可配置返回的错误页面。

    • 当选择“默认设置”时,返回的错误页面为系统默认的拦截页面。
    • 当选择“自定义”时,返回错误信息由用户自定义。
    • 当选择“重定向”时,根据界面提示配置重定向URL。

    自定义

    HTTP返回码

    “拦截页面”选择“自定义”时,支持配置HTTP返回码。

    418

    响应标头

    “拦截页面”选择“自定义”时,支持配置响应标头。

    单击“添加响应标头字段”,配置响应标头参数及参数值。

    -

    页面类型

    “拦截页面”选择“自定义”时,可选择拦截页面的类型“application/json”“text/html”或者“text/xml”

    text/html

    页面内容

    “拦截页面”选择“自定义”时,可设置自定义返回的内容。

    不同页面类型对应的页面内容样式:

    • text/html:<html><body>Forbidden</body></html>
    • application/json:{"msg": "Forbidden"}
    • text/xml:<?xml version="1.0" encoding="utf-8"?><error> <msg>Forbidden</msg></error>

  11. 单击确定,添加的精准访问防护规则展示在精准访问防护规则列表中。

    • 完成以上配置后,您可以在防护规则列表查看已添加的规则。此时,“规则状态”默认为“已开启”
    • 如果您暂时不想使该规则生效,可在目标规则“操作”列,单击“关闭”
    • 如果您不再使用该规则,可在目标规则“操作”列,单击“删除”
    • 您也可以在目标规则“操作”列,单击更多 > 修改更多 > 复制,修改或复制已添加的防护规则。

防护效果验证

假如已添加域名“www.example.com”,且配置了如图1所示的精准访问防护规则。可参照以下步骤验证防护效果:

  1. 清理浏览器缓存,在浏览器中输入防护域名,测试网站域名是否能正常访问。

    • 不能正常访问,参照网站设置章节重新完成域名接入。
    • 能正常访问,执行2

  2. 清理浏览器缓存,在浏览器中访问“http://www.example.com/admin”页面或者包含/admin的任意页面,正常情况下,WAF会拦截满足条件的访问请求,返回拦截页面。
  3. 返回Web应用防火墙控制界面,在左侧导航栏,单击“防护事件”,在“防护事件”页面,查看防护域名拦截日志。

配置示例:拦截特定的攻击请求

通过分析某类特定的WordPress反弹攻击,发现其特征是User-Agent字段都包含WordPress,如图2所示。

图2 WordPress反弹攻击

因此,可以设置精准访问控制规则,拦截该类WordPress反弹攻击请求。

图3 User Agent配置

配置示例:拦截特定的URL请求

如果您遇到有大量IP在访问某个特定且不存在的URL,您可以通过配置以下精准访问防护规则直接拦截所有该类请求,降低源站服务器的资源消耗,如图4所示。

图4 特定的URL拦截

配置示例:拦截字段为空值的请求

如果您需要拦截某个为空值的字段,您可以通过配置精准访问防护规则直接拦截该类请求,如图5所示。

图5 Referer空值拦截

配置示例:拦截指定文件类型(zip、tar、docx等)

通过配置路径字段匹配的文件类型,您可以拦截特定的文件类型。例如,您需要拦截“.zip”格式文件,您可以配置精准防护规则拦截“.zip”文件类型访问请求,如图6所示。

图6 拦截特定文件类型请求

配置示例:防盗链

通过配置Referer匹配字段的访问控制规则,您可以拦截特定网站的盗链。例如,您发现“https://abc.blog.com”大量盗用本站的图片,您可以配置精准访问防护规则拦截相关访问请求。

图7 防盗链

配置示例:单独放行指定IP的访问

配置两条精准访问防护规则,一条拦截所有的请求,如图8所示,一条单独放行指定IP的访问,如图9所示。

图8 拦截所有的请求
图9 放行指定IP

配置示例:放行指定IP的特定URL请求

通过配置多条“条件列表”,当访问请求同时满足条件列表时,可以实现放行指定IP的特定URL请求,如图10所示。

图10 放行指定IP访问特定路径

相关文档