1.jpg

Referer 为什么叫 Referer?它代表什么意思?在诸多防盗链竞争中它有什么优势?

今天,在聊 Referer 防盗链之前,先来聊聊我们在现实生活中常常碰到的推荐人(Referrer)信息。

我们在购买服务或加入会员时,有些会问你:“你从哪里知道了我们?”


Referrer 和 Referer

上面所说的就是所谓的推荐人(Referrer)信息。

对于公司来说,这是很有用的信息,企业根据这些信息,可以分析了解到数据由来,以此来调整推广渠道。

2.png

△ 谁是推荐人

大部分用户可能都不会直接访问到某个陌生的网站,一般是通过关键字搜索再进去。那么可以去哪里查找到相关信息,服务器也想知道你的“引荐人”是谁?所以 HTTP 协议在请求头(Request-Header)里设计了 Referer 字段,来给出 “引荐人” 的 URL 地址。

Referer 是一个可选请求头,用于标识来源地址(URL) 来了解访问从何而来。Referer 正确拼写应该是「Referrer」,只是在写入标准时,人们没有发现缺少一个 ‘r’ 字符,后面想改已经来不及。所以就将错就错,就一直沿用到今天。

3.png

△ ”网页引荐人“——Referer

Referer 头由于可以指明来源地址,所以人们可以根据这些数据进行分析。比如,对于营销,市场,推广人员来说,通过 Referer 字段,能了解访问都是通过哪些搜索引擎“推荐人”引流而来,以此依据,对各大搜索引擎进行广告投放。

4.png

△ Google “推荐人”

5.png

△ baidu ”推荐人“

浏览器在访问资源时,会根据不同的场景,来带上不同的 Referer 参数值来进行请求,所以我们可以根据信息对请求进行过滤判断——Referer 防盗链, 设定对应规则,让符合引用规则地址可以访问,不符合规则通过 403 进行权限控制。


Referer 防盗链实用小技巧

在又拍云,我们可以根据 Referer 黑白名单,是否允许 Referer 为空等配置规则对访问进行权限配置。

6.png

△ Referer 规则配置

如果只想指定网页内(*upyun.com)引用资源,其它域名拒绝盗链访问。可设置 Referer 白名单并且不允许 Referer 为空访问方式(当 Referer 不能为空时表示,拒绝浏览器直接指定 URL 资源,必须通过 Referer 头引用进行访问,不然也会被限制访问),以避免其他域名进行资源盗链。

在此,我们使用 HTTP 客户端命令行工具 HTTPie[https://httpie.org/](工具支持语言高亮,可以更加清晰表明访问方式) 来进行测试。

当未指定 Referer 值, Referer 为空时,无法通过 Referer 访问控制,访问响应 403 拒绝访问。

7.png

△ 未带 Referer 头访问截图

当指定 Referer :www.baidu.com 访问时,没有匹配到 *upyun.com 白名单设置,访问响应 403 拒绝访问。

8.png

△ Referer:www.upyun.com 访问截图

当指定 Referer:www.upyun.com 访问时,匹配通过 *upyun.com 白名单设置,访问响应 200 ,资源访问成功。

9.png

△ Referer:www.upyun.com 访问截图

除了 Referer 防盗链,又拍云还提供多种访问控制功能,包括 IP 黑白名单,地区访问限制,Referer 防盗链,User-Agent 防盗链,Token 防盗链等,方便用户对访问权限进行配置。如果您想了解更多,可以查看《如何选择适合自己网站的防盗链》这篇内容,了解更多相关知识。