如何将php文件设置为仅用于AJAX?

jef*_*eff -2 php ajax jquery

我有一个网站,它在很多地方使用AJAX调用,并且它们都调用一个文件,调用ajax_agent.php 并使用GET变量ajax_agent.php?action=x&arg1=y&etc=true

但是一个讨厌的用户可以直接使用自定义变量转到ajax_agent.php.它使用准备好的PDO语句,所以我猜没有sql注入的危险,但它仍然可以揭示它不应该发生的事情.

那么有没有办法检测客户端是否是另一个PHP页面(AJAX的)或实际的浏览器窗口?这会是die('you don't have permission to see this page.');吗?

谢谢 !

小智 5

AJAX请求就像任何其他请求一样是HTTP请求.请求的任何部分都可能被攻击者操纵.您不能信任它的任何部分,因此检测到它是来自浏览器的Ajax请求而不是通过浏览器的操纵请求将是不可靠的.

如果您真的想保护数据,则强制用户登录并使用会话来强制执行.