盗链指的是其他网站或应用程序未经授权直接链接使用你网站上的资源。比如图片,样式,JS脚本,压缩包,下载文件等等。
这种行为可能会造成以下影响:
为了应对这些问题,EdgeOne 提供了一系列强大的防盗链能力,本文主要介绍如何使用EdgeOne的Referer参数来实现网站防盗链功能。
通过 HTTP 请求头中的 Referer 字段值,设置访问控制规则,实现对访客的身份识别和过滤,防止网站资源被非法盗用。
登录 边缘安全加速平台 EO 控制台,在左侧菜单栏中,进入服务总览,单击网站安全加速内需配置的站点。
在站点详情页面,单击站点加速,进入站点全局配置页面,单击规则引擎 Tab 页。
在规则引擎页面,单击创建规则,选择创建规则或者在已有规则中修改规则,进行以下配置:
站点域名
,同时设置匹配类型 HTTP 请求头 Referer 头部值正则不匹配 站点域名的正则表达式
。正则表达式的配置规则可参考设置为:
^https:\/\/www\.域名主体部分\.域名后缀
403
,响应页面通过下拉框选择,若当前无页面,则需要单击新建页面先创建,创建完成再引用。发布后如下图所示:
通过配置 Referer 防盗链,要实现的目标就是以下几点:
网站域名
可以正常使用。网站域名
里面的资源,比如图片、样式表文件、JS脚本文件、下载的文件等,只能由网站域名自身调用,其它域名调用无效。此时就要识别以上2种情况的 Referer 参数是什么。
1、针对第1种情况,因为是直接在浏览器输入网站域名,这里没有 Referer 参数,也就是 Referer 参数不存在。
2、针对第2种情况,又分以下几种场景:
那么由此可见,正确的配置Referer参数,要满足2个条件
1、允许Referer参数为空,也就不存在的情况。(表示直接手动在浏览器输入网址)
2、当Referer参数存在时,所有Referer参数都应该以网站域名开头。
那么按上述核心思路,对EdgeOne的Referer 配置规则进行解析,就可以得出结论
1、当 HOST 等于网站域名
时 ,表示访问该网站。
2、当HTTP 请求头Referer存在
时,表示不是手动输入网址,因为手动输入网址 Referer 并不存在。
3、HTTP 请求头Referer正则不匹配 网站域名 开头
时,触发条件。
当上述3个条件都成立时,就表示该请求不是直接在浏览器输入同时Referer不是本网站域名,即该请求是由别的网站域名发起的,可能为盗链,此时 触发 HTTP 应答 ,响应状态码:403,响应页面:403,即可实现基于EdgeOne的Referer的防盗链功能。
Referer正则不匹配的表达式填写可参考本格式: ^https:\/\/www\.域名主体部分\.域名后缀
通过这种方式,可以在一定程度上起到防盗链的功能,具体设置请参考腾讯云EdgeOne 防盗链实践教程的官方文档。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。