2011-05-29 56 views
1

我有一个文件caller.php,它需要一个GET URI来指定一个值来搜索数据库。然后使用php以JSON格式返回数据。保护GET调用

我想保护caller.php,以便它只能从另一个页面get.php使用AJAX调用进行访问。

什么是最好的方式去做这件事?

+0

向您展示代码好友 – diEcho 2011-05-29 08:08:02

回答

3

您可以检查会话以查看该呼叫是否经过授权。 AJAX请求会向您发送PHP会话cookie。这假设caller.php是由某种使用会话的用户登录系统来保护的

+0

+1给予了太多的关注 - 这通常是要走的路 – 2011-05-29 08:07:51

+0

是否可以将caller.php放在根目录之外? – hankry 2011-05-29 08:13:56

+0

你是指你的Web服务器的文档根目录? – 2011-05-29 08:18:06

9

我想保护caller.php,以便它只能从另一个页面get.php使用AJAX调用进行访问。

你不行。 AJAX调用可以很容易伪造,就像它的起源一样。

在服务器端没有可靠的方法来判断一个调用是否是Ajax调用,也不是来自哪里。

您需要以相同的方式保护您的Ajax资源您可以确保正常页面的安全。通过授权系统如用户登录等等。

没有这样的授权系统,你必须假设每个人都可以访问该URL。

+0

我提交了此社区Wiki,因为此问题至少有两个重复内容,但我无法找到他们现在。呃,好吧。 – 2011-05-29 08:04:15

+0

作为传输的SSL实际上并不适用于这种情况。 – 2011-05-29 08:05:52

+0

@埃米耶,删除。我对“Ajax请求会向您发送PHP会话cookie”问题标题 – 2011-05-29 08:07:00