
# 通过拦截UA实现防盗刷
很多攻击者使用伪造的UA（User-Agent）访问加速域名资源，可以通过日志分析和筛选出这些UA信息，然后拦截这部分UA的访问。
#### 什么是UA
用户代理（User Agent，UA）是客户端向服务器标识自身软硬件配置的特殊字符串，包含操作系统、浏览器版本、渲染引擎等信息，以便服务器适配不同页面布局或功能。UA的格式通常如下：
```
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36
```
- 浏览器默认以Mozilla/5.0开头
- PC端和移动端
  - PC端一般携带Windows NT、Macintosh、Linux等系统标识。
  
  - 移动端一般携带Android、iPhone/iPad、Mobile等标识。
   
- 浏览器内核一般有Chrome、Safari 、Edge、Firefox
 
#### 识别攻击UA
相比于正常UA，**攻击者伪造的UA可能有以下的问题**：
1. **User-agent异常或畸形**：这类UA包含Python等自动化工具特征、明显格式错乱的UA（例如Mozilla///）、明显不合理的UA（例如www.example.com）。
2. **User-agent不合理**：例如，对于微信推广的H5页面，正常用户都应该通过微信发起访问，如果UA来自于Windows桌面浏览器（例如MSIE 6.0），则明显是不合理的。
通过CDN提供的日志和报表能力，分析和提取异常UA。可以通过以下几种方式分析和筛选异常UA：
1. **分析离线日志** ：通过查看对应时段的离线访问日志，分析HTTP请求信息，识别异常IP地址、防盗链等信息，以便针对性设置防护规则。详细信息请参考[通过日志分析恶意访问地址](https://support.huaweicloud.com/bestpractice-cdn/cdn_01_0252.html)。
2. **分析实时日志** ：如果在发生攻击行为之前，域名已经接入实时日志，可以通过实时日志分析更多客户端信息，如X-Forwarded-For字段、请求时间等。
   1. 可通过LTS为CDN定制的仪表盘分析日志信息，详见[CDN仪表盘模板](https://support.huaweicloud.com/usermanual-lts/lts_07_0028.html)。
   
   2. 也可以登录LTS服务控制台，选择**华北-北京四** **region** ，在"日志管理"页面单击对应的**日志组** 或**日志流**名称，分析该日志组中相关日志详情。
   
   
   ![](https://support.huaweicloud.com/bestpractice-cdn/public_sys-resources/note_3.0-zh-cn.png)
   - 如需使用实时日志功能，可参考[实时日志](https://support.huaweicloud.com/usermanual-cdn/cdn_01_0298.html)将域名的实时日志上报至LTS。
   
   - 开通实时日志后，CDN节点实时日志推送暂不收费（后续是否会收费请关注产品动态），基础存储与分析相关费用由云日志服务（LTS）收。
     
3. **查看运营报表** ：CDN支持定制热门URL、热门Referer、热门UA和热门客户端IP等报表，如果在发生攻击前被攻击的域名已经定制了运营报表，可以下载攻击时段的报表分析相关信息，详见[运营报表](https://support.huaweicloud.com/usermanual-cdn/cdn_01_0272.html)。
   ![](https://support.huaweicloud.com/bestpractice-cdn/public_sys-resources/caution_3.0-zh-cn.png)
   实时日志和运营报表均需要提前配置，如果因攻击产生高额账单时未配置这两项功能，只能通过离线日志分析历史数据。
   
 
#### 拦截UA
分析出异常UA后，可以通过以下方式拦截异常UA访问。
1. 配置[UA黑名单](https://support.huaweicloud.com/usermanual-cdn/cdn_01_0154.html)过滤可疑User-Agent。
   1. 登录[CDN控制台](https://console.huaweicloud.com/cdn/?locale=zh-cn#/cdn/overview)。
   
   2. 在左侧菜单栏中，选择"域名管理"。
   
   3. 在域名列表中，单击需要修改的域名或域名所在行的"设置"，进入域名配置页面。
   
   4. 选择"访问控制"页签。
   
   5. 在User-Agent黑白名单配置模块，打开开关，进入"编辑User-Agent黑白名单"页面。 **类型**：选择黑名单
      可根据业务需要勾选**拒绝空User-Agent访问**
      **规则** ：输入筛选的异常UA，本文以www.example.com为例
      图1配置User-Agent黑白名单   
      ![](https://support.huaweicloud.com/bestpractice-cdn/zh-cn_image_0000002586234687.png "点击放大") 
    
2. 通过配置[规则引擎](https://support.huaweicloud.com/usermanual-cdn/cdn_01_0310.html)功能，实现IP访问拦截。
   1. 登录[CDN控制台](https://console.huaweicloud.com/cdn/?locale=zh-cn#/cdn/overview)。
   
   2. 在左侧菜单栏中，选择"域名管理"。
   
   3. 选择"规则引擎"页签，单击创建规则，进入配置界面。 **条件**：选择User-Agent
      **运算符**：选择包含任意一个
      **值**：输入已分析出异常UA，本文以www.example.com为例
      **区分大小写**：关闭
      **执行动作** ：选择访问控制，**类型**选择拒绝
      图2配置规则引擎   
      ![](https://support.huaweicloud.com/bestpractice-cdn/zh-cn_image_0000002555691634.png "点击放大") 
    
3. 开通**边缘安全防护** ：可以使用边缘安全服务提供的[精准访问防护](https://support.huaweicloud.com/usermanual-edgesec/edgesec_01_0036.html)能力，阻断异常UA访问，达到防盗刷效果。
 
