HTTP系列之Referer和Referrer policy简介

article/2025/10/9 1:50:32

文章目录

        • 1、前言摘要
        • 2、Referer简介
        • 3、Referer安全性
        • 4、相关术语
        • 5、Referrer Policy
          • 5.1、no-referrer
          • 5.2、no-referrer-when-downgrade
          • 5.3、same-origin
          • 5.4、origin
          • 5.5、strict-origin
          • 5.6、origin-when-cross-origin
          • 5.7、strict-origin-when-cross-origin
          • 5.8、unsafe-url
          • 5.9、空字符串
        • 6、Referrer使用方法

1、前言摘要

在csdn网站随便抓个链接来看看:

Referer参数:
在这里插入图片描述
referrer policy是unsafe url的,ok,下面介绍一下Referer和referrer policy
在这里插入图片描述

2、Referer简介

referer参数是http请求头header里的一个关键参数,表示的意思是链接的来源地址,比如在页面引入图片、JS 等资源,或者跳转链接,一般不修改策略,都会带上Referer

3、Referer安全性

Referer这个http header的参数应用得当的话,是可以提高安全性的,比如,可以这个参数其实就告诉了链接的请求来源于哪个网站,所以可以根据这个特性,限制一些接口只能本网站的才能调,外部网站不能调

案例:
比如你曾经在浏览器访问过银行A的网站,所以浏览器是有保存Cookie的,Cookie并没有过期,这时,你不小心登录一个恶意的论坛网站还是什么网站,你访问了链接(其实链接后面加的是窃取Cookie,调银行A网站转账API),这时候,如果网站安全性验证不过的话,就会窃取金钱的恶意操作
针对这个银行转账窃取案例,我们或许可以这样改造,我们可以再增加一个验证的工程,不给直接调用转账接口,我们在这个验证工程里加入Referer识别的。这时候,CSRF攻击的话,肯定得在非银行A官网的服务器发送请求,我们改造之后,这个请求会先发送到验证工程这里,这时候解析请求,获取Referer属性进行识别,发现不是银行A官网的地址,这时候直接拦截,拒绝访问。

这个案例是合理应用Referer的,当然Referer是记录来源地址,很显然,这个Referer的url里很可能也会带上一些敏感信息,比如token或者用户的信息等,这些一旦被其它网站窃取了,是很危险的,如果对于Referer参数要合理地使用,所以有必要介绍一下w3c提出的referrer policy

ps:http header里的referer其实是拼写少了一个r,正确的拼写应该是referrer ,不过当初http标准发出来时候,并没有发现拼写错了,所以现在一直保持着拼写错误

4、相关术语

  • 同源策略:同源策略指协议+域名+端口都相同的情况,是由Netscape提出的一个著名的安全策略,现在所有支持JavaScript 的浏览器都会使用这个策略。实际上,这种策略只是一个规范,并不是强制要求,各大厂商的浏览器只是针对同源策略的一种实现

  • 跨域请求:跨域请求就是不符合同源策略的情况,也就是协议、域名、端口有一个或多个不一样,都算是跨域的请求,所以https链接和http链接的相互调用也是属于跨域的请求

5、Referrer Policy

Referrer Policy是W3C官方提出的一个候选策略,主要用来规范Referrer

官网:https://www.w3.org/TR/referrer-policy/

最初是只有5种策略的,现在规范增加到9种

enum ReferrerPolicy {"","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"
};
5.1、no-referrer

不发送referrer信息

5.2、no-referrer-when-downgrade

协议降级时候不发送Referrer信息,其实https的网站链接调到http的网站链接

5.3、same-origin

同源链接(协议、域名、端口都相同)发送,否则不发送

5.4、origin

Referrer发送的信息只包括协议+域名+端口,不包括其它信息

5.5、strict-origin

https的网站协议降级访问http的网站,这种情况就是一种不严格的情况,这种情况不发送Referrer,其它情况发送Referrer(协议+域名+端口),注意这里的Referrer同样只包括协议+域名+端口而已

5.6、origin-when-cross-origin

跨域时候发送Referrer(协议+域名+端口),其它情况也就是同源的情况发送完整的Referrer信息

5.7、strict-origin-when-cross-origin

这里有两个条件,1、严格模式,也就是不会出现https的网站协议降级调http的链接;2、跨域,符合这两种情况的,发送Referrer(协议+域名+端口),其它情况包括https的网站调http的链接这种协议降级的情况,等等,还有很多情况,这些情况都发送完整的Referrer

5.8、unsafe-url

这种情况是不管是否协议降级访问,还是同源跨域访问,全都发送Referrer,当然这里的Referrer也是完整的Referrer,有什么就发什么,所以这种是一种不安全的协议

5.9、空字符串

空字符串“”对应于无引用者策略,导致回退到其他位置定义的引用者策略,或者在没有此类更高级别策略的情况下,默认为“ no-referrer-when-downgrade”。此默认设置发生在官网§8.3确定请求的Referrer算法中。

6、Referrer使用方法

单个标签设置:<a>、<area>、<img>、<iframe>、<link>,这些标签都可以设置referrerpolicy属性

<a href="http://example.html" referrerpolicy="origin" target="_blank">链接</a>

全局策略设置:加个meta标签,content=“策略”

<meta name="referrer" content="origin">

在这里插入图片描述


http://chatgpt.dhexx.cn/article/cCOaV7UO.shtml

相关文章

浅析HTTP请求中的referrer和Referrer-Policy

本文将介绍一个涉及安全和隐私的http请求头中的字段—referrer&#xff0c;以及如何通过Referrer Policy去修改referrer的值或者是显示与否。 什么是referrer 当一个用户点击当前页面中的一个链接&#xff0c;然后跳转到目标页面时&#xff0c;目标页面会收到一个信息&#xff…

document.referrer之隐藏来源

document.referrer document.referrer是用来获取跳转链接的来源&#xff0c;正规的解释是:referrer 属性可返回载入当前文档的文档的 URL。 实际中使用在广告相关业务中较多&#xff0c;包括推广等。 举个例子&#xff1a; 比如我们从百度中跳转到w3c&#xff0c;那我们从w3…

java referrer_JavaScript中document.referrer的用法详解

前言 在JavaScript中&#xff0c;document对象有很多属性&#xff0c;其中有3个与对网页的请求有关的属性&#xff0c;它们分别是URL、domain和referrer。 URL属性包含页面完整的URL&#xff0c;domain属性中只包含页面的域名&#xff0c;而referrer属性中则保存着链接到当前页…

meta标签的 referrer

首先&#xff0c;我先不解释&#xff0c;先看下我下面的请求数据图。 1.默认 (<meta name"referrer" content"origin"/>不写 也不 指定时) 2.origin时 3.no-referrer时 实验了这三个&#xff0c;就知道referrer的默认值和请求头的参数键值数据&…

设置referrer

1.全界面设置 所有界面挑战时携带地址origin&#xff0c;所有请求不携带地址never&#xff08;修改后记得从新启动&#xff09; <meta name"referrer" content"origin"> 2.单页面设置 vue的话可以设置一个vue-meta的插件&#xff08;暂不介绍&…

php referrer policy,Referrer Policy介绍

referer的写法是错的&#xff0c;正确的是referrer。大概是早期http规范的拼写错误&#xff0c;然后为了保持向下兼容&#xff0c;就将错就错了。 一、九种policy enum ReferrerPolicy { "", "no-referrer", "no-referrer-when-downgrade", &quo…

Referer和Referrer Policy详解

最近换了个负责网络安全的leader&#xff0c;整个部门开始网络安全整顿&#xff0c;我们负责WEB的接到通知要求防御CSRF攻击&#xff0c;设置referer白名单。之前看过一点referer相关的&#xff0c;但是了解不够深入&#xff0c;趁这次机会好好了解了一下。 1. 什么是 Referer…

Referer  是什么?

版权所属&#xff1a;SO JSON在线解析 原文地址&#xff1a;https&#xff1a;//www.sojson.com/blog/58.html 转载时必须以链接形式注明原始出处及本声明。 Referer 是 HTTP 请求header 的一部分&#xff0c;当浏览器&#xff08;或者模拟浏览器行为&#xff09;向web 服…

响应式网页设计

目录 Responsive Web Design响应式网页设计流体网格&#xff08;Fluid grid&#xff09;弹性图片&#xff08;Flexible image&#xff09;srcset和sizes属性 SVGbackground-size CSS3媒体查询&#xff08;CSS3 media query&#xff09;和断点 meta渐进增强过时控制工具Moderniz…

css 与 html5

折叠隐藏文字 快捷键&#xff1a;span*6&#xff0c;然后敲一个tap键&#xff0c;会生成6个span标签写业务style之前&#xff0c;需要先清除style的内置样式也就是在style里面写上* {margin: 0;padding: 0;}注意body的height:100vh;不要写100%弹性盒子能使子元素垂直居中的条件…

前端Vue书籍翻页功能利用turn.js来完成以及知识点(源码)

目录 下载文档开始构造方法可配置项 方法语法 事件两种方式添加事件 自动翻页loading加载功能 案例CSSbasic.css源码如下 JS里面代码太多了,直接官网下载index.html源码如下 最终效果如下 下载 下载完里面有源码,好几种翻页效果,很不错~ 官网 文档 接口文档 开始 构造方法 …

html局部翻页效果,基于Turn.js 实现翻书效果实例解析

最近项目经理我个项目练练手,其项目需求是要实现翻书效果,看到这个需求后,我真是懵了,这咋整,我可是java出身的啊,这个问题真是难住我了,后来有同事的指导,之前他曾经做过PC版的翻书效果,当时使用的是Turn.js ,查过其相关API后,整个人突然豁然开朗呀,使用Turn.js 完…

用Modernizr和Yepnope进行递归增强

Alex Sexton的yepnope.js脚本加载程序的1.0版已于上周发布&#xff0c;因此我认为这是一个向您展示如何将Yepnope与Modernizr结合使用HTML5功能而又不招致最新用户下载的绝佳时机。 -划痕的浏览器。 什么是回归增强&#xff1f; 您可能已经熟悉渐进增强的概念&#xff1a;设计…

modernizr_使用Modernizr和Yepnope进行递归增强

modernizr Alex Sexton的yepnope.js脚本加载程序的1.0版已于上周发布&#xff0c;因此我认为这是向您展示如何将Yepnope与Modernizr结合起来以利用HTML5功能而又不招致最新用户的最佳时机。 -划痕的浏览器。 什么是回归增强&#xff1f; 您可能已经熟悉渐进增强的概念&#x…

Modernizr YepNope Tips

<style> <!-- p {text-indent:2em; line-height:24px; font-size:14px} h1, img {margin:0.6em 0} --> </style> 本文由前端开发whqet翻译自WDL&#xff0c;Rochester Oliveira2013年5月2日写的文章Modernizr & YepNope Tips。 每天都有新的更好的浏览…

教你如何申请注册微软邮箱【快速接收发送国外邮件】

如果要收发国内的邮件。网易和QQ不错的选择&#xff0c;如果接受国外邮件&#xff0c;还是国际性的公司&#xff0c;微软的outlook据说用户体验感比较好&#xff0c;先申请着&#xff0c;以备不时之需&#xff01; 申请地址&#xff1a;https://outlook.live.com/owa/ 点击创…

OutLook 2010 设置MSN邮箱

OutLook 2010 设置MSN邮箱 1、选择电子邮件账户&#xff0c;点击下一步 2、选择手动配置服务器设置或其他服务器类型(M)&#xff0c;点击下一步 3、选择Internet电子邮件(I)&#xff0c;点击下一步 4、按照提示&#xff0c;输入姓名&#xff0c;邮件地址&#xff0c;在服务…

如何申请@MSN.Com后缀的邮箱?

最近辞职在家无事,想申请个MSN.Com后缀的信箱,在网上搜索了一下,原来只要从下面的地址进入注册即可!注册抵制: https://accountservices.passport.net/reg.srf?nsmsn.com&sl1&lc2052 一口气申请了2个&#xff0c;哈哈! 您已经创建了一个 MSN 帐户 您现在可以使用电…

便捷注册live、MSN邮箱

live邮箱和msn邮箱现在已经不开放注册&#xff0c;而这两个邮箱还有些简短的很不错的用户名可用&#xff0c;方便记忆。网上有一些使用火狐浏览器和工具进行注册的办法&#xff0c;感觉过于繁琐&#xff0c;之后看到一个便捷的方式&#xff0c;亲测有效&#xff0c;分享给大家。…

阿里达摩院证实叶杰平、薄列峰入职,网易科技数字化产业周报来了

NEW 关注Tech逆向思维视频号 最新视频→【国家云强势来袭&#xff01;云计算市场要变天&#xff1f;】 阿里达摩院证实叶杰平、薄列峰入职&#xff0c; 每周一期数字化产业周报&#xff0c; 记录行业大事记、投融资动态和最新人事变动。 RECOMMEND “ 网易智能有12个不同垂直领…