阻止直接访问PHP文件并允许json

时间:2011-04-21 18:31:51

标签: php ajax block

我试图用php脚本阻止一些文件,但是,我希望我的javascript ajax调用允许脚本,我不知道这是否可能但是..

我现在做的是,

$filename = array('index.php');

$basename = basename($_SERVER['REQUEST_URI']);

if(!in_array($basename, $filename)) {
    die('...');
}

这将阻止所有文件而不是index.php,但是如果我有一个login.php可以使我的ajax调用成为可能呢?

1 个答案:

答案 0 :(得分:2)

当您发送JavaScript AJAX调用时,它会添加

  

X-Requested-With:XmlHTTPRequest

到HTTP标头。因此,如果你想在AJAX调用的情况下做某事,你可以 检查这样的事情:

$headers = getallheaders();
if($headers['X-Requested-With') == 'XMLHttpRequest') {
    // ...
}

请记住,任何HTTP客户端都可以修改标头,因此它并没有真正添加任何安全性(例如,浏览器无法使用默认设置直接调用您的PHP脚本)。