精准访问控制支持自定义访问规则,根据客户端IP、请求URL、以及常见的请求头字段过滤访问请求。

前提条件

已将网站接入WAF进行防护。具体操作请参见CNAME接入指南

背景信息

精准访问控制允许您设置访问控制规则,对常见的HTTP字段(如IP、URL、Referer、UA、参数等)进行条件组合,用来筛选访问请求,并对命中条件的请求设置放行、阻断、告警操作。精确访问控制支持业务场景定制化的防护策略,可用于盗链防护、网站管理后台保护等场景。

说明 按量付费的WAF实例提供两种规格的精准访问控制:基础防护和高级防护。您可以在规格与配置中进行调整。具体操作,请参见功能与规格配置
精确访问控制
  • 基础防护仅支持基于IP和URL的匹配条件,且每个域名可设置10条规则。
  • 高级防护支持基于IP、URL、Cookie、User-Agent、Referer、提交参数、X-Forwarded-For等各类常见HTTP头部的逻辑组合判断功能,每个域名可设置100条规则。

包年包月模式下,高级版WAF实例仅支持IP、URL、Referer、User-Agent匹配字段,且每个域名最多只能定义20条规则;企业版和旗舰版的WAF实例支持所有匹配字段(见支持的匹配字段),支持为每个域名定义的规则数分别为100条、200条。

精准访问控制规则由匹配条件与匹配动作构成。在创建规则时,您通过设置匹配字段、逻辑符和相应的匹配内容定义匹配条件,并针对符合匹配条件规则的访问请求定义相应的动作。
  • 匹配条件

    匹配条件包含匹配字段、逻辑符、匹配内容。匹配内容暂时不支持通过正则表达式描述,但允许设置为空值。

    每一条精准访问控制规则中最多允许设置三个匹配条件组合,且各个条件间是“与”的逻辑关系,即访问请求必须同时满足所有匹配条件才算命中该规则,并执行相应的匹配动作。

  • 匹配动作
    精准访问控制规则支持以下匹配动作:
    • 阻断:阻断命中匹配条件的访问请求。
    • 放行:放行命中匹配条件的访问请求。
    • 告警:放行命中匹配条件的访问请求,并针对该请求进行告警。

    选择放行告警匹配动作后,您可以进一步设置该请求是否需要继续经过其它WAF防护功能检测过滤,如Web应用攻击防护、CC应用攻击防护、智能防护、地区封禁、数据风控、SDK防护等。

  • 规则匹配顺序

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

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

操作步骤

  1. 登录云盾Web应用防火墙控制台
  2. 前往管理 > 网站配置页面,并在页面上方选择WAF所在地区(中国大陆海外地区)。
  3. 选择要操作的域名,单击其操作列下的防护配置
  4. 精准访问控制下,开启防护,并单击前去配置
    精确访问控制
  5. 单击添加规则,并设置规则的匹配条件和相应的处置动作,完成后单击确认
    说明 关于规则参数说明,请参见精准访问控制规则;关于应用示例,请参见配置示例

    添加规则
  6. 成功创建规则后,您可以选择执行以下操作:
    规则排序
    • 编辑规则内容或删除规则。
    • 如果有多条规则,单击规则排序,并操作上移下移置顶置底调整规则的匹配顺序。
      说明 越靠上的规则越优先匹配。

配置示例

精准访问控制规则支持多种配置方法,您可以结合自身业务特点定义相应的规则。通过设置精准访问控制规则也可以实现特定的Web漏洞防护

以下罗列了一些常用的精确访问控制配置示例,供您参考。

  • 配置IP黑白名单
    通过设置以下精准访问控制规则,阻断来自1.1.1.1的所有访问请求。
    黑白名单
    通过设置以下精准访问控制规则,放行来自2.2.2.0/24网段的所有访问请求。
    放行规则
    说明 应用此白名单配置规则时,请不要勾选继续执行Web应用攻击防护继续执行CC应用攻击防护等选项,不然访问请求仍可能被WAF的其它防护功能拦截。

    更多关于配置IP黑白名单的操作及注意事项,请参见IP黑白名单配置

  • 拦截特定的攻击请求
    通过分析某类特定的WordPress反弹攻击,发现其特征是User-Agent字段都包含WordPress,如下图所示。
    wordpress反弹攻击
    因此,可以设置以下精准访问控制规则,拦截该类WordPress反弹攻击请求。
    wordpress拦截规则

    关于WordPress攻击的详细防护配置,请参见防御WordPress反射

  • 封禁特定的URL
    如果您遇到有大量IP在刷某个特定且不存在的URL,您可以通过配置以下精准访问控制规则直接阻断所有该类请求,降低源站服务器的资源消耗。
    封禁特定url
  • 防盗链
    通过配置Referer匹配字段的访问控制规则,您可以阻断特定网站的盗链。例如,您发现abc.blog.sina.com大量盗用本站的图片,您可以配置以下精准访问控制规则阻断相关访问请求。
    防盗链

支持的匹配字段

下表罗列了精确访问控制支持的匹配字段及其描述。
匹配字段 字段描述 适用逻辑符
IP 访问请求的来源IP,支持填写IP或IP段(例如,1.1.1.1/24)。
说明 您可以填写最多50个IP或IP段,以英文逗号(,)分隔。
  • 属于
  • 不属于
URL 访问请求的URL地址。
  • 包含
  • 不包含
  • 等于
  • 不等于
Referer 访问请求的来源网址,即该访问请求是从哪个页面跳转产生的。
  • 包含
  • 不包含
  • 等于
  • 不等于
  • 长度小于
  • 长度等于
  • 长度大于
  • 不存在
User-Agent 发起访问请求的客户端的浏览器标识、渲染引擎标识和版本信息等浏览器相关信息。
  • 包含
  • 不包含
  • 等于
  • 不等于
  • 长度小于
  • 长度等于
  • 长度大于
Params 访问请求的URL地址中的参数部分,通常指URL中”?”后面的部分。例如,www.abc.com/index.html?action=login中的action=login就是参数部分。
  • 包含
  • 不包含
  • 等于
  • 不等于
  • 长度小于
  • 长度等于
  • 长度大于
Cookie 访问请求中的Cookie信息。
  • 包含
  • 不包含
  • 等于
  • 不等于
  • 长度小于
  • 长度等于
  • 长度大于
  • 不存在
Content-Type 访问请求指定的响应HTTP内容类型,即MIME类型信息。
  • 包含
  • 不包含
  • 等于
  • 不等于
  • 长度小于
  • 长度等于
  • 长度大于
X-Forwarded-For 访问请求的客户端真实IP。X-Forwarded-For(XFF)用来识别通过HTTP代理或负载均衡方式转发的访问请求的客户端最原始的IP地址的HTTP请求头字段,只有通过HTTP代理或者负载均衡服务器转发的访问请求才会包含该项。
  • 包含
  • 不包含
  • 等于
  • 不等于
  • 长度小于
  • 长度等于
  • 长度大于
  • 不存在
Content-Length 访问请求的响应内容所包含的字节数。
  • 值小于
  • 值等于
  • 值大于
Post-Body 访问请求的响应内容信息。
  • 包含
  • 不包含
  • 等于
  • 不等于
Http-Method 访问请求的方法,如GET、POST等。
  • 等于
  • 不等于
Header 访问请求的头部信息,用于自定义HTTP头部字段。
  • 包含
  • 不包含
  • 等于
  • 不等于
  • 长度小于
  • 长度等于
  • 长度大于
  • 不存在