首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >检查PHP中的referrer

检查PHP中的referrer
EN

Stack Overflow用户
提问于 2009-01-09 02:10:48
回答 4查看 25.3K关注 0票数 18

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-01-09 02:20:13

是的,但请记住,一些代理和其他东西剥离了这些信息,它很容易被伪造。所以永远不要依赖它。例如,不要认为您的web应用程序会受到CSRF的保护,因为您会检查referrer以匹配您自己的服务器。

代码语言:javascript
复制
$referringSite = $_SERVER['HTTP_REFERER']; // is that spelt wrong in PHP ?

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

正如andyk在评论中指出的那样,您还必须考虑到www.example.com和example.com。

票数 28
EN

Stack Overflow用户

发布于 2009-01-09 05:06:04

虽然你可以在$_SERVER['HTTP_REFERER']上获得推荐站点,但不要把赌注押在它上面。浏览器设置了这个头,它很容易被欺骗。

如果只有来自特定推荐人的人访问你的站点是很重要的,那么就不要使用这种方法。您必须找到另一种方法来保护您的内容,比如基本身份验证。我并不是说你不应该使用这种技术,只是要记住它不是万无一失的。

顺便说一句,您还可以在apache级别的using mod_rewrite上阻止引用。

票数 6
EN

Stack Overflow用户

发布于 2009-01-09 14:29:32

你不能信任推荐人。尽管它来自火狐数组,但它实际上是用户/浏览器提供的值,并且很容易使用诸如$_SERVER RefControl addon之类的东西来伪造。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/426825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档