是否可以检查谁在 PHP 中进入您的网站。我有一个 Web 应用程序(用 PHP 编写),它只允许用户从某些特定网站进入。是否可以通过检查_Request
对象获得推荐网站?如果是,如何?
Ngu Soon Hui
问问题
25250 次
4 回答
28
是的,但请记住,一些代理和其他东西会删除这些信息,并且很容易伪造。所以永远不要依赖它。例如,不要认为您的 Web 应用程序对CSRF是安全的,因为您检查了引荐来源网址以匹配您自己的服务器。
$referringSite = $_SERVER['HTTP_REFERER']; // is that spelt wrong in PHP ?
如果您只想允许来自特定域的请求,则需要解析一些 URL 以获取顶级域。正如我所了解的那样,这可以通过 PHP 的parse_url()来完成。
正如andyk在评论中指出的那样,您还必须允许 www.example.com 和 example.com。
于 2009-01-09T02:20:12.557 回答
6
虽然您可以查看$_SERVER['HTTP_REFERER']
引用站点,但不要将农场押在上面。浏览器设置此标头,很容易被欺骗。
如果只有来自特定推荐人的人才能查看您的网站至关重要,请不要使用此方法。您必须找到另一种方法,例如基本身份验证,来保护您的内容。我并不是说你不应该使用这种技术,只是请记住它不是万无一失的。
顺便说一句,您还可以使用 mod_rewrite在 apache 级别阻止引荐来源网址。
于 2009-01-09T05:06:03.550 回答
4
您不能信任推荐人。尽管来自$_SERVER
数组,但它实际上是用户/浏览器提供的值,并且很容易伪造,使用诸如 Firefox RefControl 插件之类的东西。
于 2009-01-09T14:29:31.830 回答
0
您需要检查 $_SERVER 数组中的“HTTP_REFERER”键。
于 2009-01-09T02:13:20.497 回答