Referer

2020-10-22  本文已影响0人  达文西_Huong

Referer 介绍

参考文章:https://www.jianshu.com/p/1a6abab212ed

本文基于参考文章,阅读完之后再自己总结。主要介绍的是HTTP中的 Referer字段的作用以及它的特性


什么是 Referer

Referer 是 HTTP 字段中的一部分。当浏览器向服务器发起请求的时候,请求头一般需要携带Referer字段。而该字段的值为发起请求的页面链接。而服务器可以根据链接获取到一些需要的信息。

image

Referer 的作用

防盗链

服务器可以只允许网站访问自己的静态资源,每次请求进来,服务器都会判断一下Referer的值。是否符合,符合则继续访问,否则就拦截

防止恶意请求

比如静态请求是.html结尾。而动态请求是.shtml结尾。那么只要文件是*.shtml,都必须让他的Referer是自己的网站才允许请求

Referer 的一些其他情况

Referer为空的是什么原因

因为Referer是指示一个请求是从哪里链接过来。那么如果我们直接从url中输入(即请求不是由链接触发产生的),发起的请求,Referer的值就会为空。因为直接在url上输入的请求是一个凭空产生的HTTP请求,并不是从一个地方链接过去的

在设置防盗链中,允许Referer为空的含义

允许Referer为空的含义就是,意味着你允许比如浏览器直接方位。

页面添加Referer元素,需要使用 meta referer 标签

   1、None:绝不允许referrer data通过
   标签写法:<meta name="referrer" content="none">

   2、None When Downgrade:发送referrer信息去安全的HTTPS站点,而非不稳定的HTTP站点。
   标签写法:<meta name="referrer" content="none-when-downgrade">

   3、Origin Only: 发送协议、主机和端口(即子域)没有一个完整的URL作为来源,
   即https://moz.com/example.html只会发送https://moz.com
   标签写法:<meta name="referrer" content="origin">

   4、Origin When Cross-Origin: 当传origin-only来路信息发送给外部站点时,如果目标有相同的协议、主机和端口(即子域),无论它是HTTP或HTTPS,都将全部的URL作为Referrer发送出去。(注解:官方说明书上有一处排印错误,将来的版本应该是"origin-when-cross-origin")
   标签写法:<meta name="referrer" content="origin-when-crossorigin">

   5、Unsafe URL: 总是将URL字串作为一个referrer通过。
   注意:如果你的URL中存在任何敏感信息,这不是最安全的选择。其中URL的片段、用户名、密码被自动剥去。
   标签写法:<meta name="referrer" content="unsafe-url">

以上

上一篇下一篇

猜你喜欢

热点阅读