如何阻止php脚本直接从地址栏执行?

时间:2012-01-11 02:27:27

标签: php jquery

我有这样的事情:

$.getJSON('/scripts/commons/theScriptDoTravelBackInTime.php',{
}, function(){
  // etc.. etc...
}
});

有没有办法阻止php脚本只是通过直接调用来执行 地址栏如http://www.myserver/scripts/commons/theScriptDoTravelBackInTime.php

可能输出一个回音“嘿,不作弊!”

4 个答案:

答案 0 :(得分:2)

基本,不是100%安全,但通常是引用

if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
 //your code
}

答案 1 :(得分:0)

您可以查看HTTP-Referer数据。如果它是空白的,那么它来自键入或粘贴URL。如果它不是空白,那么该字段将显示链接的来源。

  

http://en.wikipedia.org/wiki/HTTP_referer

答案 2 :(得分:0)

这是kohana框架使用的:

   public static function is_ajax()
    {
      return (isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND 
              strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest');
    }

答案 3 :(得分:0)

如果使用zend框架,有一种很好的检查方法

if($this->_request->isXmlHttpRequest())
{
  //The request was made with JS XmlHttpRequest
}