1. ホーム
  2. php

PHPでAJAXリクエストかどうかを確認する方法

2023-08-26 22:54:12

質問

phpページへのリクエストがajaxリクエストであるかどうかをサーバーサイドで確認したいのですが、どうすればよいでしょうか?

私はこれを行うための2つの方法を見ました。

最初の方法は GET パラメータを送ることで、AJAX リクエストであることをページに伝えます (= mypage.php?ajax )

mypage.phpになります。

if(isset($_GET['ajax'])) {
    //this is an ajax request, process data here.
}

第二の方法:ヘッダを xmlHttpRequest :

クライアントサイドのjsです。

xmlHttpRequestObject.open(“GET”,url,true);
xmlHttpRequestObject.setRequestHeader('X-Requested-With', 'XMLHttpRequest');

mypage.php:

if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' ) {
    //request is ajax
}


実は、この2つの方法は簡単にハッキングされるので、このようにAJAXリクエストを受けるかどうかをチェックするのは安全ではありません。

AJAXリクエストを受信しているかどうかを確認するにはどうすればよいですか。

どのように解決するのですか?

リクエストが Ajax 経由で行われたことを確認する確実な方法はありません。クライアントから来るデータを決して信用することはできません。いくつかの異なる方法を使用することができますが、なりすましによって簡単に克服することができます。