我有一个文件caller.php,它接受一个GET URI,指定一个值来搜索数据库。然后使用php以JSON格式返回数据。
我想保护caller.php,以便只能使用AJAX调用从另一个页面get.php访问它。
最好的方法是什么?
答案 0 :(得分:9)
我想保护caller.php,以便只能使用AJAX调用从另一个页面get.php访问它。
你做不到。一个AJAX调用很容易被伪造,它的起源也是如此。
在服务器端,没有可靠的方法来判断一个调用是否是Ajax,也不是它来自哪里。
您需要保护您的Ajax资源以同样的方式保护正常网页 - 例如通过授权系统,如用户登录,等等。
如果没有这样的授权系统,您必须假设每个人都可以访问该URL。
答案 1 :(得分:3)
您可以检查会话以查看呼叫是否已获得授权。 AJAX请求将向您发送PHP会话cookie。这假设caller.php由某种使用会话的用户登录系统保护