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 サイトの他の関連記事を参照してください。