如何使XMLHttpRequest(ajax)调用的php脚本安全。
我的意思是,不要让PHP文件通过直接url运行,只能通过脚本从我的页面调用(我不想向未记录的用户显示数据库结果,并且调用的php脚本文件包含数据库登录和功能)。
我研究并发现无法使用:
如果我通过.htaccess锁定文件夹或使用Mod重写(根本不能正常工作且不建议使用)
标头重定向不起作用(我完全不知道将调用脚本的URL或域)
if(@isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER']=="http://xxxxxxx.com/index.php?")
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
header('HTTP/1.1 403 Forbidden');
exit;
};
答案 0 :(得分:2)
使用随机令牌怎么样?例如,请参阅best practice to generate random token for forgot password。你会想要阅读很多关于SO的文章,使用令牌时需要考虑很多。 (特别是看他们的安全。)