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

有帮助吗?

解决方案

是的,但请记住,某些代理和其他内容会删除此信息,并且可以轻松伪造。所以永远不要依赖它。例如,不要认为您的网络应用程序不受 CSRF 的影响,因为您检查了引用来匹配您自己的服务器。

$referringSite = 

是的,但请记住,某些代理和其他内容会删除此信息,并且可以轻松伪造。所以永远不要依赖它。例如,不要认为您的网络应用程序不受 CSRF 的影响,因为您检查了引用来匹配您自己的服务器。

<*>

如果您只想允许来自特定域的请求,则需要解析部分URL以获取顶级域。我已经了解了更多信息,可以使用PHP的 parse_url()来完成。

andyk 在评论中指出,您还必须允许www.example.com和示例。融为一体

SERVER['HTTP_REFERER']; // is that spelt wrong in PHP ?

如果您只想允许来自特定域的请求,则需要解析部分URL以获取顶级域。我已经了解了更多信息,可以使用PHP的 parse_url()来完成。

andyk 在评论中指出,您还必须允许www.example.com和示例。融为一体

其他提示

虽然您可以查看 $ _ SERVER ['HTTP_REFERER'] 来获取引荐网站,但不要在其上打赌。浏览器设置此标题并且很容易被欺骗。

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

顺便说一下,您还可以在apache级别阻止引荐来使用mod_rewrite

你不能相信推荐人。尽管来自 $ _ SERVER 数组,它实际上是一个用户/浏览器提供的值,很容易伪造,使用Firefox RefControl插件

您需要检查$ _SERVER数组中的'HTTP_REFERER'键。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top