在 PHP 中检查引荐来源网址

2022-08-30 21:55:15

是否可以检查谁在PHP中进入您的网站。我有一个Web应用程序(用PHP编写),它应该只允许用户从某些特定网站进入。是否可以通过检查对象来获取推荐网站?如果是,如何?_Request


答案 1

是的,但请记住,一些代理和其他东西会剥离这些信息,它可以很容易地伪造。所以永远不要依赖它。例如,不要认为您的 Web 应用在 CSRF 中是安全的,因为您检查了引荐来源网址是否与您自己的服务器匹配。

$referringSite = $_SERVER['HTTP_REFERER']; // is that spelt wrong in PHP ?

如果您只想允许来自特定域的请求,则需要解析一些 URL 以获取顶级域。随着我学到的更多,这可以通过PHP的parse_url()来完成。

正如Andyk在评论中指出的那样,您还必须允许 www.example.com 和 example.com。


答案 2

虽然您可以查看以获取推荐网站,但不要将农场押注在其上。浏览器设置此标头,它很容易被欺骗。$_SERVER['HTTP_REFERER']

如果只有来自特定引荐来源网址的用户才能查看您的网站,这一点至关重要,请不要使用此方法。您必须找到另一种方法(例如基本身份验证)来保护您的内容。我并不是说你不应该使用这种技术,只是记住它不是万无一失的。

顺便说一句,您还可以使用mod_rewrite在apache级别阻止引用站点。


推荐