shi*_*iva 53 http http-headers
它是一种删除或隐藏请求标头中的http引用信息的方法吗?我想删除使用javascript python或django中的脚本从我的网站转到其他网站的用户的http引用信息
例:
Host slogout.espncricinfo.com
User-Agent Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.0
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip, deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection keep-alive
Referer http://slogout.espncricinfo.com/index.php?page=index&level=login
Run Code Online (Sandbox Code Playgroud)
Mar*_*rcG 105
截至2015年,这是您阻止发送Referer标头的方式:
只需将其添加到网页的head部分:
<meta name="referrer" content="no-referrer" />
Run Code Online (Sandbox Code Playgroud)
这适用于链接和页面上JavaScript代码发出的Ajax请求.
其他有效meta
选项包括:
<meta name="referrer" content="unsafe-url" />
<meta name="referrer" content="origin" />
<meta name="referrer" content="no-referrer-when-downgrade" />
<meta name="referrer" content="origin-when-cross-origin" />
Run Code Online (Sandbox Code Playgroud)
•在此处查看它是否适用于您的浏览器:http://caniuse.com/#feat=referrer-policy
•请参阅此处的规范:http://w3c.github.io/webappsec/specs/referrer-policy/
另请注意,浏览器现在发送Origin
标头(包含CORS请求和POST请求,请参见此处:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin),其中包括域和端口,以及据我所知,无法删除.如果您使用<meta name="referrer" content="origin" />
引用者将包含与Origin
标题类似的信息,从隐私的角度来看,这已经是好的,因为它将隐藏用户所在的确切页面.
更新:
如果您只想使用JavaScript删除引荐来源,则可以在发出Ajax请求之前动态添加相应的元标记.此JavaScript将添加<meta name="referrer" content="no-referrer" />
到网页的head部分:
var meta = document.createElement('meta');
meta.name = "referrer";
meta.content = "no-referrer";
document.getElementsByTagName('head')[0].appendChild(meta);
Run Code Online (Sandbox Code Playgroud)
如果您只想隐藏完整的URL并且不介意保持您的域名公开,那么这个小的Javascript代码可以完成这项工作.
您的用户在example.com/secret_url_we_want_to_hide
,您的用户点击了应该发送给他们的链接google.com
.但不是<a href="http://google.com">Go to Google</a>
,我们使用这个:
a href="http://example.com/redirect.html#http://google.com">Go to Google</a>
/redirect.html
包含以下内容的HTML页面在哪里:(编辑:请参阅更新!)
<html><head></head><script>
window.location.replace(location.hash.substring(1));
</script></html>
Run Code Online (Sandbox Code Playgroud)
Google.com会http://example.com/redirect.html
在引荐来源标记中看到并且永远不会看到实际内容example.com/secret_url_we_want_to_hide
.
更新:
Firefox有location.hash 的错误,解决方法如下:
<html><head></head><script>
workaround_hash=location.href.split('#').splice(1).join('#');
window.location.replace(workaround_hash);
</script></html>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
77721 次 |
最近记录: |