阻止除AJAX请求之外的对PHP文件的直接访问?
我希望在阻止除AJAX请求之外的对PHP文件的直接访问?,php,ajax,Php,Ajax,我希望在/AJAX/file.AJAX.PHP 问题是,我不希望人们能够在浏览器中键入地址来直接访问该PHP文件 有没有一种方法可以让AJAX请求访问该文件 我可以在PHP文件中检查一些东西来实现这一点吗?如果使用jQuery生成XHR,它将设置一个自定义头X-request-With。您可以检查并确定如何为您的响应服务 $isXhr = isset($_SERVER["HTTP_X_REQUESTED_WITH"]) AND strotlower($_SERVER["HTTP
/AJAX/file.AJAX.PHP
问题是,我不希望人们能够在浏览器中键入地址来直接访问该PHP文件
有没有一种方法可以让AJAX请求访问该文件
我可以在PHP文件中检查一些东西来实现这一点吗?如果使用jQuery生成XHR,它将设置一个自定义头
X-request-With
。您可以检查并确定如何为您的响应服务
$isXhr = isset($_SERVER["HTTP_X_REQUESTED_WITH"])
AND strotlower($_SERVER["HTTP_X_REQUESTED_WITH"]) == "xmlhttprequest";
然而,这对于欺骗来说是微不足道的。过去,我用它来决定是呈现整个页面(如果未设置)还是页面片段(如果已设置,则注入当前页面)。如果您没有使用
jQuery
,或者您不感兴趣/您不能使用自定义标题(与alex
提供的内容一致),您可以在Ajax请求中简单地发布一些数据,并在特定文件中检查数据是否已发送。如果您通过GET
发送,它将显示在地址栏上,这就是为什么我建议POST
<?php
if (empty($_POST['valid_ajax']))
header('Location: /');
?>
提供手工数据并不可靠,但如果问题不是那么严重,那总比没有好。这很有效!!!我不知道为什么在我投票之前没有人投票支持这个答案。。