什么是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不同的值可以有不同的策略
其他情况
HTTPS协议到HTTP的协议,这时候Referer也是空的