【问题标题】:$_SERVER['HTTP_REFERER'] or window.location.href?$_SERVER['HTTP_REFERER'] 还是 window.location.href?
【发布时间】:2023-03-31 09:42:02
【问题描述】:

我正在编写将在需要访问引用 URL 的<script> 标记中使用的 JavaScript,我正在考虑通过 JavaScript 将页面 URL 传递给 JavaScript,或者通过 PHP 获取引用 URL。我的问题是 PHP.net 这么说 $_SERVER['HTTP_REFERER']...

并不是所有的用户代理都会设置这个,有些提供修改HTTP_REFERRER的功能。简而言之,它不能真正被信任。

不过,我相信JavaScript也可以修改window.location.href

所以我的问题是:

在 PHP 的 $_SERVER['HTTP_REFERER'] 和 JavaScript 的 window.location.href 之间,更值得信赖/可靠。和/或有没有更好的方法以这种方式获取引荐来源网址?

【问题讨论】:

  • 底线是没有 100% 万无一失的方法。

标签: javascript php


【解决方案1】:

JavaScript 和 window.location.href 不会为您提供引荐来源网址,除非您将 window.location.href 的值作为参数明确传递给您的下一个请求。

至于哪个更好,这取决于你在做什么。如果您正在制作分析跟踪器,window.location.href 更可靠,但需要启用 JavaScript。如果您将其用于 CORF 保护,请务必使用$_SERVER['HTTP_REFERER'](除了其他更可靠的验证)。

【讨论】:

  • 是的,如果我要使用window.location.href,我会将值传递给脚本,否则我将使用$_SERVER['HTTP_REFERER']。那么在这种情况下,使用传递给脚本的window.location.href 并使用$_SERVER['HTTP_REFERER'] 作为后备会更好吗?
  • @Coffee'dUpHacker 是的,我会这样做。
猜你喜欢
  • 2012-09-27
  • 1970-01-01
  • 1970-01-01
  • 2017-04-09
  • 1970-01-01
  • 2012-04-13
  • 2015-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多