有没有可能用PHP检查谁在进入你的网站?我有一个网络应用程序(用PHP编写),应该只允许用户从一些特定的网站进入。是否可以通过检查_Request
对象来获取推荐网站?如果是,是如何实现的?
发布于 2009-01-09 02:20:13
是的,但请记住,一些代理和其他东西剥离了这些信息,它很容易被伪造。所以永远不要依赖它。例如,不要认为您的web应用程序会受到CSRF的保护,因为您会检查referrer以匹配您自己的服务器。
$referringSite = $_SERVER['HTTP_REFERER']; // is that spelt wrong in PHP ?
如果您希望只允许来自特定域的请求,则需要解析一些URL以获取顶级域。随着我学到更多,这可以用PHP的parse_url()来完成。
正如andyk在评论中指出的那样,您还必须考虑到www.example.com和example.com。
发布于 2009-01-09 05:06:04
虽然你可以在$_SERVER['HTTP_REFERER']
上获得推荐站点,但不要把赌注押在它上面。浏览器设置了这个头,它很容易被欺骗。
如果只有来自特定推荐人的人访问你的站点是很重要的,那么就不要使用这种方法。您必须找到另一种方法来保护您的内容,比如基本身份验证。我并不是说你不应该使用这种技术,只是要记住它不是万无一失的。
顺便说一句,您还可以在apache级别的using mod_rewrite上阻止引用。
发布于 2009-01-09 14:29:32
你不能信任推荐人。尽管它来自火狐数组,但它实际上是用户/浏览器提供的值,并且很容易使用诸如$_SERVER
RefControl addon之类的东西来伪造。
https://stackoverflow.com/questions/426825
复制相似问题