我知道可以获得一个空的HTTP_REFERER。在什么情况下会发生?如果我得到一个空的,是否意味着用户改变了它?获得一个空的一样得到一个空的一个?在什么情况下我也可以得到这些?在什么情况下HTTP_REFERER将为空
回答
它将/可能是空的,当终端用户
- 进入了浏览器地址栏中本身的网站的网址。
- 通过浏览器维护的书签访问该网站。
- 作为窗口/选项卡中的第一页访问该网站。
- 从https URL切换到http URL。
- 从https网址切换到另一个https网址。
- 已安装安全软件(防病毒/防火墙/等),从所有请求中删除引荐来源。
- 是一个代理服务器,它从所有请求中剥离引用者。
- 以编程方式访问该站点(如,curl),而不设置引用标头(searchbots!)。
HTTP_REFERER - 由浏览器发送,指出浏览器查看的最后一页!
如果您信任[HTTP_REFERER]任何原因,重要的是,你不应该的,因为它可以很容易地伪造:
- 一些浏览器限制不允许HTTP_REFERER传递
- 类接入在地址栏的地址,将无法通过HTTP_REFERER
- 打开一个新的浏览器窗口将不会通过HTTP_REFERER,因为HTTP_REFERER = NULL
- 有一些浏览器插件,阻止它隐私的原因。一些防火墙和AVs会这样做。
试试这个Firefox扩展,你可以设置你想要的任何标题:
@Master庆典:
火狐:
扩展:refspoof, refontrol,modify headers, no-referer
完全禁用:此选项在“network.http.sendRefererHeader”下的about:config中可用,并且您希望将其设置为0以禁用引用者传递。
谷歌浏览器/铬:
扩展:noref,spoofy,external noreferrer
完全禁用: Chnage〜/的.config /谷歌铬/默认/首选项或〜/。 config/chromium/Default/Preferences并设置为:
{
...
"enable_referrers": false,
...
}
或者干脆添加--no-引荐快捷方式或CLI:
google-chrome --no-referrers
歌剧:
完全禁用:设置>首选项>高级>网络,并取消选中“发送引荐信息”
欺骗Web服务:
独立过滤代理(欺诈任何报头):
欺骗使用wget
当HTTP_REFERER '--referer = URL'
欺骗http_referer使用curl时
-e,--referer
欺骗HTTP_REFERER问心无愧的telnet
telnet www.yoursite.com 80 (press return)
GET /index.html HTTP/1.0 (press return)
Referer: http://www.hah-hah.com (press return)
(press return again)
[篡改数据](https://addons.mozilla.org/en-US/firefox/addon/tamper-data/)是另一个Firefox扩展,如果您想要更改引荐来源值,那么值得一看。 –
我真的很难记住它的名字。但我的记忆背叛了我。谢谢:) – ThatGuy
@nix'一些浏览器限制访问不允许HTTP_REFERER被传递'您能否给这个浏览器和/或扩展命名一个例子? –
BalusC的名单是固体。此字段经常出现空白的另一种方式是当用户位于代理服务器后面时。这与防火墙相似,但略有不同,所以为了完整起见,我想提及它。
如果使用新的Referrer Policy standard draft来防止将referer头部发送到请求源,它也将为空。例如:
<meta name="referrer" content="none">
虽然Chrome和Firefox已经实施引荐政策的草稿版本,你应该小心,因为例如铬预计no-referrer
而不是none
(我也看到某处never
)。
- 1. HTTP_REFERER在什么情况下不起作用?
- 2. 为什么在这三种情况下
- 3. 为什么在这种情况下
- 4. 为什么在这种情况下
- 5. 为什么静态HashMap中总是空以下情况下
- 6. 为什么Request.QueryString在某些情况下用空字符替换+?
- 7. 在什么情况下外键不能为空?
- 8. 为什么在这种情况下Json是空的?
- 9. 为什么在这种情况下stdout输出空字符串?
- 10. 为什么在某些情况下需要将#放在Lisp中?
- 11. 什么情况下sprintf将优先stringstream?
- 12. 为什么QWebFrame :: evalutateJavaScript在这种情况下什么都不做?
- 13. 为什么NaN有用,在什么情况下
- 14. 什么是wrapper_descriptor,在这种情况下为什么是Foo .__ init __()?
- 15. GridView HeaderText在某些情况下为空
- 16. 为什么要将JPanel添加到JLabel,在什么情况下会出现这种情况?
- 17. 为什么IntelliJ告诉我在这种情况下引用不能为空?
- 18. 为什么这个python列表在这种情况下显示为空?
- 19. 在什么情况下调用__rmul__?
- 20. fgets()在什么情况下卡住了?
- 21. 在什么情况下document.open()返回null?
- 22. 在什么情况下CopyOnWriteArrayList适合?
- 23. 在什么情况下AppDomain.DoCallback()会失败?
- 24. 在什么情况下glGenBuffers/glGenBuffersARB失败?
- 25. “:”在这种情况下做什么?
- 26. 在什么情况下会http.ListenAndServe返回
- 27. sched_yield在这种情况下做什么?
- 28. 有什么用在这种情况下
- 29. 什么是在这种情况下
- 30. *在这种情况下做什么?:
当客户端不发送一个。 –