ホームページ  >  記事  >  バックエンド開発  >  AJAX で呼び出された PHP ファイルへの直接アクセスを防ぐにはどうすればよいですか?

AJAX で呼び出された PHP ファイルへの直接アクセスを防ぐにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-11 07:52:02620ブラウズ

How to Prevent Direct Access to AJAX-Called PHP Files?

AJAX で呼び出されるファイルへの直接アクセスのインターセプト

AJAX 駆動型アプリケーションでは、サーバー側の PHP スクリプトからデータを取得する際に、次の点について慎重に考慮する必要があります。安全。 GET リクエスト経由でスクリプトを呼び出すと、その内容とパラメータは HTTP ヘッダーを検査しているすべてのユーザーに表示されます。

ファイルへの直接アクセスの防止

権限のないユーザーが PHP ファイルに直接アクセスできないようにするため、AJAX リクエストによって送信される HTTP_X_REQUESTED_WITH ヘッダーを利用できます。このヘッダーは、リクエストが XMLHttpRequest から発信されたものであることを示しており、直接アクセスの試行と区別できるようになります。

実装

PHP スクリプトに、次のコード ブロックを追加します。機密性の高い操作の前:

if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')) {
    // Allow access to AJAX requests
} else {
    // Block direct file access and display an error message
    header("HTTP/1.0 403 Forbidden");
    echo "Direct access not permitted.";
}

AJAX リクエスト ヘッダー

JavaScript コードには、X-Requested-With ヘッダーを AJAX リクエストに追加する次の行を含める必要があります。

var xhrobj = new XMLHttpRequest();
xhrobj.setRequestHeader("X-Requested-With", "XMLHttpRequest");

これにより、サーバーがヘッダーを受信し、リクエストが AJAX 呼び出しとして正しく識別されるようになります。これらの対策を実装することで、正当な AJAX リクエストへのアクセシビリティを維持しながら、AJAX 関数によって呼び出される PHP スクリプトへの直接フ​​ァイル アクセスを効果的に防止できます。

以上がAJAX で呼び出された PHP ファイルへの直接アクセスを防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。