当前位置:首页 > 专栏 > 互联网 > 正文内容

meta name="referrer" content="no-referrer" a rel="no-referrer" 中referrer使用解读

抖抖1年前 (2023-09-22)互联网867

什么是referrer?

referrer有“引用页面”或“来源页面”的意思,用来指定当前页面是从哪个页面跳转过来的,也就是说HTTP请求报头中的referrer包含了跳转至当前页面的上一个页面的url地址;

比如,你点击A页面中链接到B页面的URL地址,当你从浏览器进入B页面时,会向服务器发送请求,在这个请求的报头中会带上一个referrer,包含了A页面的URL地址;

referrer的作用

1、referrer可以告诉你用户是从哪个页面url地址过来的,这样就可以用来统计用户的来源,还可以用于分析用户的兴趣爱好、收集日志、优化缓存等等。

2、如果禁止referrer,可以防止盗链,或也可以绕过防盗链,也能防范一些攻击。

referrer的隐患

如果网页中,由于涉及隐私和安全问题,防止 referrer 泄漏就显得很重要了。

比如,很多情况下我们的url会包含用户的个人信息。因此,有时候,我们需要移除或禁用页面上的referer信息

再比如,在后台中使用了referer属性,会导致js和php的一些跳转出现问题,同时,也很有可能会导致一些第三方的统计代码失效,比如cnzz,百度统计,解决方法是不用该属性,或者使用iframe包裹一层,用一个独立的html页面加载统计代码!

referrer属性写法

在html网页文档中,有两种方式,可以添加发送请求的referrer信息,分别是<meta>标签法和单个连接标签法

1、<meta>标签法(针对整个页面)

在html页面中的<head>头部区域用meta标签添加referrer属性

<meta name="referrer" content="属性值">

属性值常见有以下几种:

  1. no-referrer:任何情况下都不发送Referrer信息;

  2. no-referrer-when-downgrade:仅当协议降级(如从HTTPS页面跳转到HTTP页面)时不发送Referrer信息。是大部分浏览器默认策略。

  3. origin:发送只包含host部分的referrer信息,也就是只包含了协议和域名的url,不包含域名后面部分,比如,来源网页url是https://baidu.com/1.html,但referrer值只包含http://www.baidu.com;

  4. origin-when-cross-origin:仅在发生跨域访问时,发送只包含host的Referer信息,但在同域下还是完整的,而只有协议、域名和端口都一致时,浏览器才认为是同域。

  5. unsafe-url:全部都发送Referrer信息,是最宽松,也是最不安全的策略

这种方法是针对属于当前网页中的所有链接,从任何一个链接跳转到其他页面,都会带上referrer信息。

如果想要在任何情况下,当前页面发送的请求不携带referrer信息,就这样写:

<meta name="referrer" content="no-referrer">

如果想要在任何情况下,当前页面发送的请求包含referrer信息,就这样写:

<meta name="referrer" content="unsafe-url">

这种情况下,如果当前页面使用了 https 协议,而要加载的资源使用的是 http 协议,加载资源的请求头中也会携带 referer。

温馨提示:

  1. referrer属性的<meta> 标签需要放在 <head> ...</head> 之间,如果出现的位置不对就会被忽略。

  2. 如果没有content 属性,或者 content 属性值为空,也会被忽略。

  3. 如果 content 属性后面的取值不合法,浏览器会自动选择 no-referrer 。

2、单个链接标签法

这种方法可以只针对网页中具体的某一个或多个链接单独设置referrer,常常运用在<a>、<img>、<area>、<iframe>、<link>标签上。


<a rel="no-referrer" href="http://www.baidu.com" />百度</a>

<img rel="no-referrer" src="logo.png" />

值得注意的是:

这种单个链接标签法,只对该标签中链接有效,且referrer的属性值,只有三个,分别是:

no-referrer、origin、unsafe-url

而且,单个链接标签法设置referrer的优先级比<meta>标签法要高。

另外,<a>、<area>、<link>标签中的单个链接,还可以使用rel="noreferrer"属性达到和no-referrer同样的效果,写法如下:

<a rel="noreferrer" href="http://www.baidu.com" />百度</a>

同样的,该方法使用rel="noreferrer"属性设置referrer的优先级比<meta>标签法要高。

HTML Img标签 src为网络地址无法显示图片问题解决

原理解析:

http请求头中有一个referrer字段,用来表示发起http请求的源地址信息

服务器端在拿到这个referrer值后判断请求是否来自本站

若不是则返回403,从而实现图片的防盗链。

上面出现403就是因为,请求的是别人服务器上的资源,但把自己的referrer信息带过去了,被对方服务器拦截返回了403

在前端可以通过meta来设置referrer policy(来源策略),referrer设置成no-referrer,发送请求不会带上referrer信息,对方服务器也就无法拦截了。

扫描二维码推送至手机访问。

版权声明:本文由字母汇发布,如需转载请注明出处。

本文链接:https://www.izzi.cn/post/153933.html

分享给朋友:

“meta name="referrer" content="no-referrer" a rel="no-referrer" 中referrer使用解读” 的相关文章

SEOer日常每天需要做什么

一、流量检查项频次是否必须说明总流量:PV、UV、IP……每日是监控流量是否异常渠道来源:搜索来源、直接访问和其他每日是监控渠道数据是否异常各业务线频道:PV、UV、IP……每日是保障重点业务,才是最重要的重点业务线频道渠道来源:搜索来源、直接访问和其他每日否补充查找重点业务线异常流量来源各个搜索引...

如何快速获取SEO流量?优质内容网站效果最佳

如何快速获取SEO流量?做用户搜索聚合页,是个不错的选择。前提条件:有大量优质的原创内容(没有也能做,但效果一般或是短期效果)。案例:1688、京东、阿里云、腾讯云、抖音、懂车帝……如何做?一、明确行业内用户需求,找到用户搜索词(爱站、5118都有搜索词提供)。二、调研自己官网用户搜索词的覆盖情况(...

网站URL书写规则

网站的网址结构尽可能使用简单、易懂的字词,使网址结构合乎逻辑并易于人们理解。同时,也要兼顾同类页面的收录查询和数据统计。建议:在网址中使用简单、说明性字词:https://www.izzi.cn/wiki/建议:在网址中使用已本地化的字词(如果适用)。https://www.example.com/...

网站常用中英文对比大全

首页:Home page搜索:Search登录:Login注册:Register个人资料:Profile设置:Settings帮助:Help联系我们:Contact us关于我们:About us产品:Products服务:Services新闻:News博客:Blog下载:Download上传:Up...

文章网页常用中英文对比大全

文章:Article标题:Title作者:Author发布日期:Publish date阅读量:Pageviews评论:Comments目录:Table of contents摘要:Abstract引言:Introduction内容:Content结论:Conclusion参考文献:Referenc...

网站数据分析中英文对比大全

数据分析:Data analysis统计:Statistics报告:Report指标:Metrics图表:Charts表格:Tables趋势:Trends增长率:Growth rate用户:Users访问量:Visits页面浏览量:Pageviews会话:Sessions平均停留时间:Average...