HTTP请求中的referrer和Referrer-Policy_thlzjfefe的博客-CSDN博客_referrer


本站和网页 https://blog.csdn.net/thlzjfefe/article/details/102521707 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

HTTP请求中的referrer和Referrer-Policy_thlzjfefe的博客-CSDN博客_referrer
HTTP请求中的referrer和Referrer-Policy
thlzjfefe
于 2019-10-12 15:38:18 发布
30487
收藏
60
分类专栏:
http
文章标签:
referrer和Referrer-Policy
原文链接:https://juejin.im/post/5cd81b59518825686a06fd05
版权
http
专栏收录该内容
40 篇文章
2 订阅
订阅专栏
本文将介绍一个涉及安全和隐私的http请求头中的字段—referrer,以及如何通过Referrer Policy去修改referrer的值或者是显示与否。
什么是referrer
当一个用户点击当前页面中的一个链接,然后跳转到目标页面时,目标页面会收到一个信息,即用户是从哪个源链接跳转过来的。如下图所示:
也就是说,当你发起一个http请求,请求头中的referrer字段就说明了你是从哪个页面发起该请求的。
使用场景
有时候我们需要控制这个referrer字段的值,即是否让其显示在请求头中,或者是否显示完整路径等。尤其是在以下两个使用场景:
隐私
在社交网站的个人中心页面,也许会存在一些外链,这时候社交网站肯定不希望用户在点击这些链接跳转到其他第三方网站时会将自己个人中心的URL信息显示在referrer字段中传过去,尤其是个人中心页面的URL往往会带着用户数据和一些敏感信息。这时候可以选择不显示来源页面URL信息或者只显示一个网站根地址hostname。
安全
有些使用了https的网站,可能在URL中使用一个参数(sid)来作为用户身份凭证,而又需要引入其他https网站的资源,这种情况,网站肯定不希望泄露用户的身份凭证信息。当https网站需要引入不安全的http网站的资源或者有链接要跳转到http网站时,这时候将https源网站的URL信息传过去也是不太安全的。
当然还有其他情况下需要referrer的值,比如最近公司所做的项目中,有一个请求由于请求头过大导致响应是400,我们的Referrer Policy是默认的情况,显示的referrer是完整的URL信息,该URL带了很多敏感数据比如加密后的token,sessionID等,长度特别长,请求头中的cookie和请求的URL也带着很大块的信息,最终我们决定让referrer只携带网站根地址的信息而不是其完整路径,由此减小了header的大小。
Referrer-Policy
Referrer-Policy的作用就是为了控制请求头中referrer的内容,目前是一个候选标准,不过已经有部分浏览器支持该标准。
目前Referrer-Policy只包含以下几种值:
enum ReferrerPolicy {
"",
"no-referrer",
"no-referrer-when-downgrade",
"same-origin",
"origin",
"strict-origin",
"origin-when-cross-origin",
"strict-origin-when-cross-origin",
"unsafe-url"
};复制代码
空字符串
若设为空串则默认按照浏览器的机制设置referrer的内容,默认情况下是和no-referrer-when-downgrade设置得一样。
no-referrer
不显示referrer的任何信息在请求头中。
no-referrer-when-downgrade
这是默认值。当从https网站跳转到http网站或者请求其资源时(安全降级HTTPS→HTTP),不显示referrer的信息,其他情况(安全同级HTTPS→HTTPS,或者HTTP→HTTP)则在referrer中显示完整的源网站的URL信息。
same-origin
表示浏览器只会显示referrer信息给同源网站,并且是完整的URL信息。所谓同源网站,是协议、域名、端口都相同的网站。
origin
表示浏览器在referrer字段中只显示源网站的源地址(即协议、域名、端口),而不包括完整的路径。
strict-origin
该策略更为安全些,和origin策略相似,只是不允许referrer信息显示在从https网站到http网站的请求中(安全降级)。
origin-when-cross-origin
当发请求给同源网站时,浏览器会在referrer中显示完整的URL信息,发个非同源网站时,则只显示源地址(协议、域名、端口)
strict-origin-when-cross-origin
和origin-when-cross-origin相似,只是不允许referrer信息显示在从https网站到http网站的请求中(安全降级)。
unsaft-url
浏览器总是会将完整的URL信息显示在referrer字段中,无论请求发给任何网站。
Referrer-Policy更改方法
可以有以下5种方法:
1. 通过Referrer-Policy HTTP header设置:
Referrer-Policy: origin复制代码
2. 通过<meta>元素改变Referrer Policy,直接修改名为referrer的内容
<meta name="referrer" content="origin">复制代码
3. 给 <a>, <area>, <img>, <iframe>, 或者<link>元素设置referrerpolicy属性
<a href="http://example.com" referrerpolicy="origin">复制代码
4. 如需设置不显示referrer信息时,也可以给 <a>, <area>, <link>元素设置rel的链接关系。
<a href="http://example.com" rel="noreferrer">复制代码
总结
使用何种Referrer Policy取决于网站的需求,但是一般来说,unsafe-url是不太建议用的,同样,如果是只想显示网站的根地址,那么建议用strict-origin和strict-origin-when-cross-origin。如果URL中没有什么敏感信息,那就默认使用no-referrer-when-downgrade。
参考:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy
thlzjfefe
关注
关注
17
点赞
60
收藏
评论
HTTP请求中的referrer和Referrer-Policy
本文将介绍一个涉及安全和隐私的http请求头中的字段—referrer,以及如何通过Referrer Policy去修改referrer的值或者是显示与否。什么是referrer当一个用户点击当前页面中的一个链接,然后跳转到目标页面时,目标页面会收到一个信息,即用户是从哪个源链接跳转过来的。如下图所示:也就是说,当你发起一个http请求,请求头中的referrer字段就说明了你是从...
复制链接
扫一扫
专栏目录
Referrer策略
liuhua_2323的博客
10-31
2944
Referrer简介:
在流量监测中,访客的来源信息是一个很重要的信息,包括访客的访前链接,以及搜索关键词。在HTTP请求中有一个referrer标签,用来指明当前流量的来源参考页。例如在http://www.bitauto.com/上点击一个链接到达www.taoche.com首页,那么就referrer就是http://www.bitauto.com/了。在Javascript中,我们可以通...
评论 1
您还未登录,请先
登录
后发表或查看评论
http 策略之 Referrer-Policy
lxw1844912514的博客
12-28
988
一、背景说道referer ,大家想必知道的清楚一些。referer是用来防止 CORS(跨站请求伪造)的一种最常见及有效的方式。对于自身服务器,通过客户端发来的请求中带有的referer...
AndroidReferrerTest:Google Play 的 Referrer 测试是一个 Android 测试应用程序,它展示了如何将“referrer”字符串从网站电子邮件广告传递到 Android 上的 Google Play 商店,让用户安装您的应用程序,然后让 Play 商店将字符串传递到您的安卓应用
05-31
2015年6月更新
在 Play 商店 2-1/2 年之后,谷歌在没有警告的情况下禁止了我的应用程序,因为我的图标包含了谷歌播放图标的一部分。 我提出更改图标并提交新版本,但被告知我的应用程序被终身禁止。 我不确定这些术语是否在2-1 / 2年前就已经存在,但是尽管如此,这些术语现在确实存在,并且看来我的图标可能确实违反了这些术语。 我的错。 有人告诉我我可以创建一个新帐户并提交一个全新的应用程序,但我想我现在已经完成了 Google Play。
AndroidReferrerTest
Google Play 的 Referrer Test 是一个 Android 测试应用程序,它展示了如何将来自网站/电子邮件/广告/任何内容的“referrer”字符串传递到 Android 上的 Google Play 商店,让用户安装您的应用程序,然后让 Play store 将字符串传递到您的 A
接口基础-HTTP请求中的referrer和Referrer-Policy
最新发布
IT13333的博客
10-21
92
接口基础-HTTP请求中的referrer和Referrer-Policy
HTTP首部---referrer 知识点
zhangsir的博客
08-13
2万+
Referrer介绍
Referrer网站来路;访问者进入网站任何途径。HTTP Referer是header的一部分,当浏览器向web服务器发出请求的时候,一般会带上Referer,告诉服务器用户从那个页面连接过来的,服务器藉此可以获得一些信息用语处理。
获取referrer
js中获取:var referer = document.referrer;
java后台获取:String...
Referrer Policy 介绍
johnhuster的专栏
12-15
2万+
Referrer Policy 介绍
referer 与 Referrer-Policy
moonquake
02-21
163
一、什么是referer
当我们通过浏览器访问网站事,浏览器会封装我们的请求,也就是request对象
referer就是request对象中的其中一个字段
referer表示“来源网页”
二、何时会发送referer
正常情况下,我们通过浏览器的url地址输入框访问时,是没有referer的,通过<a>标签或表单提交时是有referer的
三、referer的作用
服务端获取到请求的来源网址后,就可以做相关的业务操作: 如防止盗链,阻止其它hos..
请求报警:Referrer Policy: strict-origin-when-cross-origin或引用站点策略: no-referrer-when-downgrade
热门推荐
07-06
5万+
提交表单发送ajax请求时,chrome请求返回Referrer Policy: strict-origin-when-cross-origin错误,360浏览器返回 引用站点策略:no-referrer-when-downgrade,
出现此类问题主要是因为网站当前访问是使用https,而提交表单或ajax请求却使用的是http,可以归类为跨域问题。只需要将表单或ajax请求由http也修改为https即可。
这种http和https的跨域问题,还可能导致cookie失效的假象。不仔细...
Referrer-Policy常见属性
qq_42808052的博客
09-30
8772
Referrer-Policy常见属性
Referrer-Policy 首部用来监管哪些访问来源信息——会在 Referer 中发送——应该被包含在生成的请求当中。
Referrer-Policy: no-referrer
Referrer-Policy: no-referrer-when-downgrade
Referrer-Policy: origin
Referrer-Policy: origin-when-cross-origin
Referrer-Policy: same-origin
Ref
Referrer Policy:strict-origin-when-cross-origin 404
pichcar1982的博客
12-08
2955
今天在修复以前项目bug的时候遇到前端访问后端接口的时候总是报404找不到资源错误,经过反复查看代码后来发现代码控制层出现一个严重错误,使用的是spring mvc框架,而以前开发人员写controller层的时候居然用@Controller来修饰控制层,而接口方法返回对象,而前端需要的是json字符串,而controller接口方法要返回json数据,需要用@RestController修饰才对,这样接口方法返回响应对象会自动将其转换为json数据。
...
Referrer和Referrer-Policy简介
zzhongcy的专栏
06-08
517
Referrer和Referrer-Policy简介
referrer值的设置及对应的意义
wangsiyisiyi的博客
03-04
1816
在自己的页面中引入一些别的网页上的图片,如果页面中不显示图片,要在html的header中加上
<meta name="referrer" content=“no-referrer”>
referrer是用于追踪用户是从哪个页面跳转过来,设置为no-referrer,表示所有请求都不发送referrer.
如果content属性不是合法的取值,浏览器会自动选择no-referer策略...
Referrer还是Referer? 一个迷人的错误
素履独行 | 元培的个人博客
12-29
2473
诗人郑愁予曾经在一首诗中写道:我达达的马蹄是个美丽的错误,我不是归人,是个过客。而对我来说,十九岁之前的我,一样是个沉浸在诗歌中的文艺少年。十九岁之后的我,作为一名程序员,更多的是邂逅各种错误。可偏偏人类世界对待错误从来都不宽容,所以,错误本身既不美丽,亦不浪漫。接近中年的我,无论如何,都写不出年轻时令人惊艳的句子,这或许和我们面对错误时的不同心境,有着莫大的关联,而今天这篇博客,同样要从一个历史...
referer与referrer
ITCBL
11-08
687
Referer的正确英语拼法是referrer。由于早期HTTP规范的拼写错误,为了保持向后兼容就将错就错了。其它网络技术的规范企图修正此问题,使用正确拼法,所以目前拼法不统一。
简而言之,HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器藉此可以获得一些信息用于处理。比如从我主页上链接到一个...
referrer策略和meta标签的问题
thlzjfefe的博客
03-16
1252
请求后端接口时,banner图片的请求出现403错误:GEThttp://xxxxxxxxxxxx403(Forbidden)。在网上搜寻一番,解决方法如下:在index.html中的head中添加<meta name="referrer" content="no-referrer" />。
在此之前,关于referrer,知之甚少。参考https://imququ.com/post/refer...,说是一种引用策略,可以用来防止图片或视频被盗。它的原理是:http 协议中,如果从一个网..
HTTP的Referrer和Referrer Policy介绍
《穷小子的IT世界》的专栏
12-16
199
Referrer
referrer是HTTP请求header的报文头,用于指明当前流量的来源参考页面。通过这个信息,我们可以知道访客是怎么来到当前页面的。这对于Web Analytics非常重要,可以用于分析不同渠道流量分布、用户搜索的关键词等。
但是,这个字段同时会造成用户敏感信息泄漏(如:带有敏感信息的重置密码URL,若被Web Analytics收集,则存在密码被重置的危险)。
Referrer 还是 Referer?
Referer是上世纪 90 年代由Philip Hallam-Baker提
SSO 访问失败Referrer Policy: strict-origin-when-cross-origin
ppwwp的专栏
03-10
1万+
Referrer Policy: strict-origin-when-cross-origin
原因居然是因为 端口6666 为不安全的端口 换成8443可以了 ,nima。
请求行——Referrer-Policy
qq_36777191的博客
07-25
627
本文将介绍一个涉及安全和隐私的http请求头中的字段—referrer,以及如何通过Referrer Policy去修改referrer的值或者是显示与否。
什么是referrer
当一个用户点击当前页面中的一个链接,然后跳转到目标页面时,目标页面会收到一个信息,即用户是从哪个源链接跳转过来的。如下图所示:
也就是说,当你发起一个http请求,请求头中的referrer字段就说明了你是从哪个页面发起该请求的。
使用场景
有时候我们需要控制这个referrer字段的值,即是否让其显示在请求头中,
chrome iframe 跨域_Chrome 新的默认 ReferrerPolicy : strictoriginwhencrossorigin
weixin_39819327的博客
11-28
6568
如果你的站点有使用 Referer 标头收集网页的访问来源信息,则此策略变化可能对你的程序造成影响,请仔细阅读。在开始阅读本文之前,如果你不理解site和origin之间的关系,请阅读:同站和同源你理解清楚了么?Referer 标头Referer请求头包含了当前请求页面的来源页面的地址,即表示当前页面是通过此来源页面里的链接进入的。服务端一般使用Referer请求头识别访问...
HTTP Referer详解及Referer控制
juruiyuan111的专栏
03-17
3882
HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的
什么是HTTP Referer
referer的意思简言之,HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。
比如在一个网页里面插入一个超链接,链接到其他的网页,那么当点击这个超链接从而链接到另外一个页面的时候...
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:大白
设计师:CSDN官方博客
返回首页
thlzjfefe
CSDN认证博客专家
CSDN认证企业博客
码龄15年
暂无认证
57
原创
3万+
周排名
10万+
总排名
64万+
访问
等级
4374
积分
115
粉丝
259
获赞
75
评论
1053
收藏
私信
关注
热门文章
nginx绑定多个端口
39022
HTTP请求中的referrer和Referrer-Policy
30475
nginx 中通过server_name listen的方式配置多个服务器
25793
Nginx $host变量详解 及 如何读取请求头header里面的key
20012
浅谈Es6中import * as xxx from几种基本用法
18562
分类专栏
cpu
2篇
算法
13篇
java tools
6篇
xss
2篇
SQL注入
1篇
redis
8篇
正则表达式
6篇
lua
17篇
springboot
3篇
Nodejs
4篇
面试
3篇
hikari
2篇
hibernate
2篇
单点登陆
1篇
mongodb
1篇
LDAP
1篇
日志分析
1篇
Libinjection
1篇
owasp
1篇
modSecurity
1篇
schedule
1篇
chrome
2篇
SockJS
1篇
Guava
1篇
Logstash
1篇
supervisor
1篇
Spark
1篇
mq
IDEA
1篇
mybatis 异常
2篇
hashmap
1篇
jquery
2篇
java
50篇
java io
java Exception
2篇
spring
8篇
设计原则
跨域
10篇
jvm
5篇
ElasticSearch
4篇
:tcp/ip  socket  http
2篇
tcp/ip  socket  http
16篇
java thread
3篇
TCP/IP
13篇
DNS
1篇
http
40篇
cdn
2篇
cas
1篇
Maven
3篇
行级锁
2篇
protocol
2篇
数据库事务
3篇
AQS
redi
2篇
RabbitMQ
2篇
ORACLE 分区
1篇
nginx
43篇
设计模式
1篇
RPC和WebService
JMS
1篇
分布式
7篇
数据库
10篇
Docker
6篇
VirtualBox
2篇
Linux
30篇
集群
3篇
bootstrap
1篇
Websocket
4篇
Spring Scheduler
1篇
MySQL
20篇
npm
2篇
Express
1篇
Scpclient
1篇
Content-Type
2篇
ES6
8篇
javascript
24篇
ubuntu
3篇
HTML5
7篇
git
8篇
Node
7篇
js
22篇
html
6篇
CGI
1篇
Lua-Nginx
5篇
交换机
keepalived
3篇
网络
22篇
最新评论
dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算
MandiGao:
写得真好
dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算
Sandra_kw:
质量超高,赞
七种WebSocket框架的性能比较
摸么:
楼主可以贴下代码吗,付费下载也可以
notify()是随机唤醒线程么?
cheers_up:
既然notify这个唤醒是通过waitQueque放队列里唤醒的,我们有办法知道,如果我是一条线程进去wait后,我下次用notify唤醒的,有什么办法知道,我唤醒的刚好就是上次wait这条线程不
HTTP协议header中Content-Disposition中文文件名乱码
m0_72352765:
老哥硬
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
java内存模型(JMM)详解
IP地址的分类及简介,一文搞定IP地址的相关知识
es索引的创建
2022
12月
4篇
11月
2篇
10月
6篇
09月
4篇
08月
3篇
07月
1篇
06月
6篇
05月
5篇
04月
15篇
03月
32篇
02月
7篇
01月
5篇
2021年71篇
2020年138篇
2019年115篇
2018年77篇
目录
目录
分类专栏
cpu
2篇
算法
13篇
java tools
6篇
xss
2篇
SQL注入
1篇
redis
8篇
正则表达式
6篇
lua
17篇
springboot
3篇
Nodejs
4篇
面试
3篇
hikari
2篇
hibernate
2篇
单点登陆
1篇
mongodb
1篇
LDAP
1篇
日志分析
1篇
Libinjection
1篇
owasp
1篇
modSecurity
1篇
schedule
1篇
chrome
2篇
SockJS
1篇
Guava
1篇
Logstash
1篇
supervisor
1篇
Spark
1篇
mq
IDEA
1篇
mybatis 异常
2篇
hashmap
1篇
jquery
2篇
java
50篇
java io
java Exception
2篇
spring
8篇
设计原则
跨域
10篇
jvm
5篇
ElasticSearch
4篇
:tcp/ip  socket  http
2篇
tcp/ip  socket  http
16篇
java thread
3篇
TCP/IP
13篇
DNS
1篇
http
40篇
cdn
2篇
cas
1篇
Maven
3篇
行级锁
2篇
protocol
2篇
数据库事务
3篇
AQS
redi
2篇
RabbitMQ
2篇
ORACLE 分区
1篇
nginx
43篇
设计模式
1篇
RPC和WebService
JMS
1篇
分布式
7篇
数据库
10篇
Docker
6篇
VirtualBox
2篇
Linux
30篇
集群
3篇
bootstrap
1篇
Websocket
4篇
Spring Scheduler
1篇
MySQL
20篇
npm
2篇
Express
1篇
Scpclient
1篇
Content-Type
2篇
ES6
8篇
javascript
24篇
ubuntu
3篇
HTML5
7篇
git
8篇
Node
7篇
js
22篇
html
6篇
CGI
1篇
Lua-Nginx
5篇
交换机
keepalived
3篇
网络
22篇
目录
评论 1
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值