【发布时间】:2011-01-08 10:27:53
【问题描述】:
我有一个 service.php 类,用于服务来自我的网站的 AJAX 调用。为了防止其他人使用 PHP CURL 访问服务,我通常会检查请求是否来自 mysite,如果不是,则只需重定向到我的主页,例如
if($_SERVER['HTTP_REFERER'] != "http://www.mysite.com"){
header('location: http://www.mysite.com');
exit;
}
我读过 PHP 圣经:
那个
“并不是所有的用户代理都会设置这个,有些提供了修改 HTTP_REFERER 的能力作为一个特性。简而言之,它不能真正被信任。”
如果这种方法不可靠,我的问题是如何可靠地检查对我的服务文件的请求是否来自我的网站?
感谢您提供的任何帮助!
【问题讨论】:
-
答案很简单:你不能。即使你阻止了一个小偷,他也会来这里进行stackoverflow并获得完整而准确的解决方案如何避免它。
-
只要 'woot586' 不在这里发布他的秘密字符串,我想他会没事的吗?
-
另外,对于新手开发者来说,了解请求不是来自您的网站,而是来自客户的计算机,这一点非常重要
-
@Nanne 什么会阻止他们模拟 ajax 调用?
标签: php ajax security http-referer