
# 通过Cookie字段限制网站访问频率
对于有些网站，源IP无法精准获取。例如：存在未在header中插入"X-Forwarded-For"字段的Proxy或其他原因，建议使用配置Cookie字段实现用户标识并开启"全局计数"。
#### 实践案例
竞争对手控制数台主机，与大多普通访客一样，共用同一IP，或通过代理频繁更换源IP，持续向网站"www.example.com"发起HTTP Post请求，网站并无较大的负载能力，网站连接数、带宽等资源均被该攻击者大量占用，正常用户无法访问网站，最终竞争力急剧下降。
#### 防护措施
1. 根据服务访问请求统计，判断网站是否有大量同一IP请求发生，如果有则说明网站很有可能遭受了CC攻击。
2. 登录管理控制台，将您的网站成功接入Web应用防火墙。
3. 在目标域名所在行的"防护策略"栏中，单击"已开启N项防护"，进入"防护策略"页面，确认"CC攻击防护"的"状态"为"开启"![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000001221411281.png)。
   
   图1CC防护规则配置框   
   ![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000001763942269.png)
   
   
4. 开启WAF的"CC攻击防护"后，添加CC防护规则，配置如[图2]所示。
   
   - 限速模式：选择"源限速"、"用户限速"，根据Cookie键值区分单个Web访问者。
   
   - 用户标识：为了更加有效地标识用户，建议使用"sessionid"或"token"这类标识网站后台颁发给用户的唯一标识字段。
   
   - 限速频率：单个Web访问者在限速周期内可以正常访问的次数，如果超过该访问次数，Web应用防火墙服务将暂停该Web访问者的访问。
   
   - "全局计数"：根据不同的限速模式，将已经标识的请求在一个或多个WAF节点上的计数聚合。默认为每WAF节点单独计数，开启后本区域所有节点合并计数。选择"用户限速"时，此时标识的请求可能会访问到不同的WAF节点，开启全局计数后，将请求访问的一个或多个WAF节点访问量聚合，达到全局统计的目的。
   
   - 防护动作：选择"拦截"模式。该模式可设置"拦截时长"，在攻击被拦截后，攻击者需额外等待一段时间才能访问正常的网页， 该设置能进一步对攻击者行为进行限制，建议对安全要求非常高的用户设置。
   
   - 拦截页面：可选择"默认设置"或者"自定义"。
   
   
   图2添加CC防护规则   
   ![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002129648278.png "点击放大")
   
   
5. 在左侧导航树中，选择"防护事件"，进入防护事件页面，可以查看攻击事件详情。
 
#### 配置示例：通过业务Cookie和HWWAFSESID配置限制恶意抢购、下载
- 场景一：限制同一个账号切换IP、终端的恶意请求（抢购、下载等）。 防护措施：[场景一：使用业务Cookie（或者用户ID）基于路径配置CC限速]
  
- 场景二：限制恶意人员在同一个PC多个账号不停切换的恶意请求（抢购、下载等）。 防护措施：[场景二：使用HWWAFSESID基于路径配置CC限速]
  
 
#### 场景一：使用业务Cookie（或者用户ID）基于路径配置CC限速
1. 登录管理控制台，将您的网站成功接入到WAF。 
   - 云模式添加域名的方法：[添加防护域名（云模式-CNAME接入）](https://support.huaweicloud.com/usermanual-waf/waf_01_0002.html)。
   
   - 独享模式添加域名的方法：[添加防护网站（独享模式）](https://support.huaweicloud.com/usermanual-waf/waf_01_0250.html)。
   
   
   
   
2. 在目标域名所在行的"防护策略"栏中，单击"已开启N项防护"，进入"防护策略"页面。
3. 在"CC攻击防护"配置框中，确认"CC攻击防护"的状态为开启。 
   图3CC防护规则配置框   
   ![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000001763942269.png)
   
   
4. 在"CC攻击防护"规则配置页面左上角，单击"添加规则"。
5. 根据业务情况，使用业务Cookie（或者用户id）基于路径配置CC限速，参考如[图4]进行配置。
   
   - 限速模式：选择"源限速"、"用户限速"。
   
   - 用户标识：Cookie，Cookie键值配置为标识用户ID的字段。
   
   - 限速条件："字段"选择"路径"，"逻辑"和"内容"根据实际情况进行配置。
   
   - 其他参数根据业务实际情况进行配置。
   
   
   图4业务Cookie配置   
   ![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002165179217.png "点击放大")
   
   
6. 单击"确认"，完成配置。
 
#### 场景二：使用HWWAFSESID基于路径配置CC限速
HWWAFSESID：会话ID。WAF会在客户请求Cookie中插入HWWAFSESID（会话ID），该字段服务于WAF统计安全特性，CC防护规则中用于用户计数。该场景为您介绍如何通过该字段来配置CC限速。
1. 登录管理控制台，将您的网站成功接入到WAF。 
   - 云模式添加域名的方法：[添加防护域名（云模式-CNAME接入）](https://support.huaweicloud.com/usermanual-waf/waf_01_0002.html)。
   
   - 独享模式添加域名的方法：[添加防护网站（独享模式）](https://support.huaweicloud.com/usermanual-waf/waf_01_0250.html)。
   
   
   
   
2. 在目标域名所在行的"防护策略"栏中，单击"已开启N项防护"，进入"防护策略"页面。
3. 在"CC攻击防护"配置框中，确认"CC攻击防护"的"状态"为"开启"![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000001323146594.png)。
   
   图5CC防护规则配置框   
   ![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000001763942269.png)
   图6CC防护规则配置框   
   ![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000001374386301.png "点击放大")
   
   
4. 在"CC攻击防护"规则配置页面左上角，单击"添加规则"。
5. 根据业务情况，使用HWWAFSESID基于路径配置CC限速，参考如[图7]进行配置。
   
   - 限速模式：选择"源限速"、"用户限速"。
   
   - 用户标识：选择"Cookie"，配置为"HWWAFSESID"。
   
   - 限速条件："字段"选择"路径"，"逻辑"和"内容"根据实际情况进行配置。
   
   - 其他参数根据业务实际情况进行配置。
   
   
   图7HWWAFSESID配置   
   ![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002129940618.png "点击放大")
   
   
6. 单击"确定"，完成配置。
 
#### 防护效果验证
假如已添加域名"www.example.com"，且已按照[防护措施](https://support.huaweicloud.com/bestpractice-waf/waf_06_0003.html#waf_06_0003__section6472427715)配置了CC防护规则。
1. 清理浏览器缓存，在浏览器中访问满足Cookie条件的"http://www.example.com/"页面，在60秒内刷新页面10次，正常情况下，在第11次访问该页面时，WAF拦截该请求，并返回自定义的拦截页面。
2. 返回Web应用防火墙控制界面，在左侧导航栏，单击"防护事件"，在"防护事件"页面，查看域名防护详情。
 
