Web 前端开发

referer相关知识

2018-07-29  本文已影响5人  海娩

什么是referer?

referrer是指返回跳转或打开到当前页面的那个页面的URI,举个例子,从 A网页 -> B网页,再B网页里的referrer就是A网页的URI。

referer有什么用?

Referer 请求头让服务器能够拿到请求资源的来源,可以用于分析用户的兴趣爱好、收集日志、优化缓存等等。同时也让服务器能够发现过时的和错误的链接并及时维护。

referer有什么隐患?

尽管如此,有时候,对于一个网站来说,由于涉及隐私和安全问题,防止 referrer 泄漏很重要
比如,很多情况下我们的url会包含用户的个人信息。因此,有时候,我们需要移除页面上的referer信息

移除页面referer的方法

为一个单独的链接移除 referrer

html5中有一个新属性rel,设置rel=“ noreferrer”就可以去掉referrer值,常常运用在<a>标签上。

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

为iframe移除referrer

嵌入一个iframe时用data加base64编码的方式

  // 处理iframe里的src
base64Iframe = 'data:text/html;base64,' + delRefer(url)
  // 构建iframe,去掉referrer
function delRefer (url) {
  let s = `<body style="margin: 0"><iframe src="${url}" width="100%" height="100%" sandbox="allow-same-origin allow-scripts allow-forms allow-popups allow-modals" frameborder="0"></iframe></body>`
  return Base64.encode(s) // 通过base64编码该标签
},

为整个网页的每个链接移除 referrer

这个时候可以设置meta标签的name属性,在设置content

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

设置了name=“referrer“,根据content不同的值可以有不同的策略

image.png

其他情况

HTTPS协议到HTTP的协议,这时候Referer也是空的

上一篇下一篇

猜你喜欢

热点阅读