如何设置EdgeOne的Referer参数实现网站防盗链功能

一、什么是盗链

盗链指的是其他网站或应用程序未经授权直接链接使用你网站上的资源。比如图片,样式,JS脚本,压缩包,下载文件等等。

这种行为可能会造成以下影响:

  • 盗链会消耗你服务器的带宽和资源,导致网站速度变慢,甚至可能导致服务器崩溃。
  • 盗链可能导致你的网站内容被滥用或未经授权传播,可能损害品牌形象和声誉。
  • 盗链可能产生大量流量,若服务器使用按流量计费,可能会产生额外费用。

为了应对这些问题,EdgeOne 提供了一系列强大的防盗链能力,本文主要介绍如何使用EdgeOne的Referer参数来实现网站防盗链功能。

二、什么是 Referer 防盗链

通过 HTTP 请求头中的 Referer 字段值,设置访问控制规则,实现对访客的身份识别和过滤,防止网站资源被非法盗用。

三、如何配置 EdgeOne的Referer

1、进入站点配置页

登录 边缘安全加速平台 EO 控制台,在左侧菜单栏中,进入服务总览,单击网站安全加速内需配置的站点。

2、进入规则配置页

在站点详情页面,单击站点加速,进入站点全局配置页面,单击规则引擎 Tab 页。

3、配置规则

在规则引擎页面,单击创建规则,选择创建规则或者在已有规则中修改规则,进行以下配置:

  • 在规则编辑页面,匹配类型选择为 HOST 等于 站点域名,同时设置匹配类型 HTTP 请求头 Referer 头部值正则不匹配 站点域名的正则表达式

正则表达式的配置规则可参考设置为:^https:\/\/www\.域名主体部分\.域名后缀

  • 单击操作,在弹出的操作列表内,选择操作为 HTTP 应答。
  • 配置响应状态码 403,响应页面通过下拉框选择,若当前无页面,则需要单击新建页面先创建,创建完成再引用。
  • 完整的规则配置如下所示,单击保存并发布,即可完成该规则配置。

4、规则确认

发布后如下图所示:

四、配置 Referer 防盗链的核心思路

通过配置 Referer 防盗链,要实现的目标就是以下几点:

  • 用户直接在浏览器输入 网站域名 可以正常使用。
  • 网站域名 里面的资源,比如图片、样式表文件、JS脚本文件、下载的文件等,只能由网站域名自身调用,其它域名调用无效。

此时就要识别以上2种情况的 Referer 参数是什么。

1、针对第1种情况,因为是直接在浏览器输入网站域名,这里没有 Referer 参数,也就是 Referer 参数不存在。

2、针对第2种情况,又分以下几种场景:

  • 访问网站首页时,首页内包含的素材文件,如图片、样式表文件、JS脚本文件等,Referer 参数是首页的首页地址,通常就是网站域名。
  • 由首页跳转至其它页,比如网站域名/a.html ,那么此时a.html页的Referer参数就是首页地址,通常就是网站域名。
  • a.html页面中调用的素材文件,如图片、样式表文件、JS脚本文件等,Referer 参数是 网站域名/a.html

那么由此可见,正确的配置Referer参数,要满足2个条件

1、允许Referer参数为空,也就不存在的情况。(表示直接手动在浏览器输入网址)

2、当Referer参数存在时,所有Referer参数都应该以网站域名开头。

五、EdgeOne的Referer 配置规则解析

那么按上述核心思路,对EdgeOne的Referer 配置规则进行解析,就可以得出结论

1、当 HOST 等于网站域名 时 ,表示访问该网站。

2、当HTTP 请求头Referer存在时,表示不是手动输入网址,因为手动输入网址 Referer 并不存在。

3、HTTP 请求头Referer正则不匹配 网站域名 开头 时,触发条件。

当上述3个条件都成立时,就表示该请求不是直接在浏览器输入同时Referer不是本网站域名,即该请求是由别的网站域名发起的,可能为盗链,此时 触发 HTTP 应答 ,响应状态码:403,响应页面:403,即可实现基于EdgeOne的Referer的防盗链功能。

Referer正则不匹配的表达式填写可参考本格式: ^https:\/\/www\.域名主体部分\.域名后缀

六、总结

通过这种方式,可以在一定程度上起到防盗链的功能,具体设置请参考腾讯云EdgeOne 防盗链实践教程的官方文档。

Notahero

我还没有学会写个人说明!

相关推荐

粉色冰块闯关游戏

PINK ICE 是一款基于 HTML、CSS 和 JavaScript 开发的响应式滑块解谜游戏,支持方向键或触屏操作,适配移动与桌面端,拥有多 ...

暂无评论