PHPでAJAXリクエストかどうかを判断

1042 ワード

いくつかのAPIインタフェースでは、通常、AJAXリクエストであるかどうかを検出し、ある程度セキュリティを向上させることができます.
まず、フロントエンドがjQueryを使用する場合、どのように区別するかを説明します.
jQueryがajaxリクエストを発行すると、リクエストヘッダにX-Requested-Withという情報が追加されます.情報内容はXMLHttpRequestです.
バックエンドで$_を使用できます.SERVER["HTTP_X_REQUESTED_WITH"]で取得します.(注意:中線は下線に変わり、大文字と小文字は区別されません)
これにより、ajaxリクエストであるか否かを判断することができる.
// php       ajax    
if(isset($_SERVER["HTTP_X_REQUESTED_WITH"]) && strtolower($_SERVER["HTTP_X_REQUESTED_WITH"])=="xmlhttprequest"){ 
    // ajax         
}else{ 
    //           
};

オリジナルJavaScriptを使用してajaxリクエストを発行する場合は、バックエンドの学生を区別するためにヘッダに情報を追加することもできます.方法は以下の通りです.
var xmlhttp=new XMLHttpRequest(); 
xmlhttp.open("GET","test.php",true); 
xmlhttp.setRequestHeader("X-Requested-With","XMLHttpRequest"); 
xmlhttp.send();

ここでも頭にX_を追加しますREQUESTED_WITH情報、jQueryとの一致.もちろん、別の情報に変更して区別することもできます.
from:http://blog.phpha.com/archives/544.html