背景信息
本文介绍如何通过分析访问数据识别流量盗刷特征,并提供多种防护方案的配置方法、适用场景及决策建议,帮助您有效控制因资源盗刷导致的流量成本激增。
识别流量盗刷特征
基础查询:离线日志
通过下载离线日志,查看相关时间段的访问日志,分析HTTP请求的详细信息,识别可疑的IP地址、User-Agent等。离线日志字段数据相对较少,如果您想查看更多数据,可使用实时日志功能。
获得离线日志文件后,您可以使用命令行工具来快速解析日志文件,提取访问量TOP10的IP地址或User-Agent等信息,详情请参见CDN访问日志的分析方法。
进阶查询:运营报表和实时日志
运营报表需定制后才会进行生产统计分析,如果您之前已配置过实时日志推送或订阅运营报表,您可以查看到过去的日志信息。运营报表为CDN自带免费功能,无需额外付费。
实时日志需要开通日志服务(SLS)并成功投递日志后,才会生成实时日志。实时日志为付费功能,具体计费请参见计费详情。
实时日志和运营报表均需要提前配置,如果您在产生高额账单之前未配置过这两项功能,只能通过离线日志进行历史数据分析。
拦截策略
空Referer处理
如果出现大量的空Referer流量,可以使用边缘安全加速ESA进行处理。
对于允许空Referer访问的业务,可以配置空Referer进行JS挑战,拦截盗刷流量。对于不允许空Referer访问的业务,可以直接拦截空Referer请求,禁止其访问。
空Referer进行JS挑战
在ESA控制台,选择站点管理,在站点列单击目标站点。
在左侧导航栏,选择。
单击自定义规则页签,进入自定义规则页签,单击新增规则。
单击确定。
匹配规则的位置,点击编辑表达式,在输入框中输入:
(exists(http.referer) and len(http.referer) lt 1 and http.host eq "xxxxxx.aliyun.com") or (not exists(http.referer) and http.host eq "xxxxxx.aliyun.com")其中xxxxxx.aliyun.com替换成实际需要配置的域名执行配置调整成JS挑战

空Referer拦截
场景一:业务不允许任何空Referer请求 在ESA中配置WAF自定义规则,拦截所有空Referer请求。 配置路径:站点 > 安全防护 > WAF > 自定义规则。
表达式为:
(exists(http.referer) and len(http.referer) lt 1) or (not exists(http.referer))
场景二:业务需要允许部分空Referer请求(例如首页访问) 配置WAF规则拦截空Referer请求,同时添加白名单规则放行特定路径(如首页)。操作步骤如下:
配置自定义规则拦截空Referer 配置路径:站点 > 安全防护 > WAF > 自定义规则。

配置白名单规则放行特定路径(此处以首页为例) 配置路径:站点 > 安全防护 > WAF > 白名单规则。
表达式为:
(http.host in {"your hostname"} and http.request.uri in {"/"})
恶意Referer拦截
通过盗刷特征识别,确认哪些Referer是非法的,如果存在非法Referer,使用Referer黑名单或者边缘脚本(特定URL路径下执行Referer拦截逻辑)进行拦截。
Referer黑名单
登录CDN控制台。
在左侧导航栏,单击域名管理。
在域名管理页面,找到目标域名,单击操作列的管理。
在指定域名的左侧导航栏,单击访问控制。
在Referer黑/白名单页签,单击修改配置。
Referer类型选择黑名单,在规则中填写非法的Referer名单,勾选忽略scheme。
根据业务情况决定是否勾选 允许空Referer。
勾选(允许):如果您的用户会直接访问网站,或者您的移动App需要访问资源,必须勾选此项,否则会误伤正常用户。
不勾选(禁止):如果您的资源(如图片)只应被您自己的网页引用,且没有直接访问的场景,可以不勾选以增强防护。
单击确定,完成配置。
边缘脚本拦截
如果需要在特定URL路径下执行复杂的Referer拦截逻辑,可以使用EdgeScript。
登录CDN控制台。
在左侧导航栏,单击域名管理。
在域名管理页面,找到目标域名,单击操作列的管理。
单击EdgeScript自定义策略。
在模拟环境页签,单击添加规则,配置边缘脚本规则。
在规则代码中编写逻辑,打开启用状态。例如,仅当访问
/videos/目录下的资源且Referer来自bad-domain.com时才拦截。if and(match_re($uri, '/videos/'), match_re($http_referer, 'bad-domain.com')) { exit(403) }单击发布到模拟环境,在模拟环境中,测试规则。
测试完成后,单击发布所有规则到生产环境,将模拟环境规则发布至生产环境。
重要模拟环境规则发布到生产环境后,模拟环境的规则自动被清空。

控制访问频次
如果无法确认Refere是否合法,无法设置Referer黑名单,此时可以使用ESA的频次控制功能限制访问频次,减少恶意流量。
在ESA控制台,选择站点管理,单击目标站点操作列的。
在左侧导航栏,选择。
在WAF页面,选择频次控制规则,单击新增规则,根据界面提示填写规则信息。
主机名为指定的域名,统计项为客户端IP,频次为您实际业务访问的频率阈值(建议可以设置成实际访问阈值的1.2-2倍),执行操作选择仅对超过频次的请求执行和拦截。

单击确定。





