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

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

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

Referrer 和 Referer

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

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

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

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

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

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

Referer 防盗链实用小技巧

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

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

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

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

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

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

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

推荐阅读

大家都在说的云安全,到底是怎么回事?

浅谈 FTP、FTPS 与 SFTP

秋天的第一份“干货” I Referer 防盗链,为什么少了个字母 R?的更多相关文章

  1. php 通过referer防盗链(以图片为例)

    1.在网页里访问站外图片时,服务器如何知道是在站外引用的呢? (1)对比本服务器请求与跨服务器请求 图一——本服务器请求 图二——显示盗链的referer信息 通过对比也就知道referer显示的是引 ...

  2. Nginx referer防盗链模块

    L75 referer模块 ngx_http_referer_module 默认编译进nginx valid_referers 指令 Syntax: valid_referers none | blo ...

  3. [Java][Web]利用 referer 防盗链

    String referer = request.getHeader("referer"); if(referer == null || !referer.startsWith(& ...

  4. Referer防盗链

    一.目录展示 分为AProject和BProject两个项目进行测试 二.修改c:\windows\system32\drivers\etc下的hosts文件 三.aindex.jsp 四.binde ...

  5. 使用NGINX+LUA实现WAF功能 和nginx 防盗链

    使用NGINX+LUA实现WAF功能 一.了解WAF 1.1 什么是WAF Web应用防护系统(也称:网站应用级入侵防御系统 .英文:Web Application Firewall,简称: WAF) ...

  6. HTTP协议、时间戳、防盗链的一些概念

    HTTP协议 什么是HTTP协议 (HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准. HTTP是一 ...

  7. request 防盗链

    package request; import java.io.IOException;import javax.servlet.ServletException;import javax.servl ...

  8. Nginx优化之日志优化,URL访问控制,防盗链,及站点文件目录优化

    Nginx日志相关优化与安全 日志切割脚本如下: #!/bin #日志切割脚本 Date=`date +%Y%m%d` Bdir="/usr/local/nginx" Nginxl ...

  9. PHP伪造referer突破防盗链

    php伪造referer实例代码,主要用于一些突破防盗链. 可以从这个例子中发展出很多的应用.比如隐藏真实的URL地址……嘿嘿,具体的就自己分析去吧 这里新建一个文件file.php.后面的参数就是需 ...

随机推荐

  1. NET Core Kestrel部署HTTPS 一个服务器绑一个证书 一个服务器绑多个证书

    .net core 3.0 网站发布到centos后,绑定ssl证书,一个服务器绑一个证书,一个服务器绑多个证书 开始之前:对于windows服务器不存在这个问题,在iis中绑定证书是非常简单的一件事 ...

  2. C言语--冒泡排序

    /* 冒泡排序,从小到大 */ include<stdio.h> int main(void) { int i; int t; int p; int val; int a[6]; for( ...

  3. 揭秘!containerd 镜像文件丢失问题,竟是镜像生成惹得祸

    导语 作者李志宇,腾讯云后台开发工程师,日常负责集群节点和运行时相关的工作,熟悉 containerd.docker.runc 等运行时组件.近期在为某位客户提供技术支持过程中,遇到了 contain ...

  4. MD5加密,java String 转变成MD5 String 详细代码,工具类Android开发必备

    /** * MD5加码.32位 * @param inStr * @return */ public static String MD5(String inStr) { MessageDigest m ...

  5. Spine学习二 -播放Spine动画

    要想播放一个Spine动画,必须要在一个物体上绑定一个Spine播放的组件,这里暂时使用SkeletonAnimation组件. 然后就是编写动画的控制脚本. 这里提一个特性: [SpineAnima ...

  6. 读Twinsen的深入探索透视投影变换

    2017.10.16更新,分割线下面是以前的文字,有表达的意思,却言不达意,实属羞耻,看官只需看前面文字即可. Twinsen大神的<深入探索透视投影变换>有几个点说得不够清晰,我这里提一 ...

  7. Python の 在 VSCode 中使用 IPython Kernel 的方法

    本文介绍,在 VSCode 使用 IPython Kernel,的设置方法. 要达到的效果: 只需按下 Ctrl+:,选中的几行代码,就会自动发送到 IPython Kernel,并运行,得到结果!当 ...

  8. vue中饼状图的使用

    图形构建子组件 <template> <div> <div id="myChart" :style="echartStyle"&g ...

  9. 深入理解 IoC、DI

    本文转载自博客:https://www.cnblogs.com/xinhuaxuan/p/6132372.html 1.控制反转:谁控制谁?控制什么?为何叫反转(对应于正向)?哪些方面反转了?为何需要 ...

  10. JVM学习第三天(JVM的执行子系统)之类加载机制补充

    昨晚没看完,今天继续 系统的类加载器 对于任意一个类,都需要由加载它的类加载器和这个类本身一同确立其在Java虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间.这句话可以表达得更通俗一些: ...