簡単なことではありません。
Ajaxは、他のHTTPアクセスと同様に、リクエストを通じて作成されます。通常のリクエストは、 AjaxリクエストメソッドGET
があるのと同じように、メソッドを使用して行われます。GET
私はあなたの状況が長すぎないという状況に直面しました。私の解決策は、完璧にはほど遠いものの、これです。
- アプリケーションですべてのAjax呼び出しに
POST
メソッドを使用させます。
これを、 Ajaxを介してフェッチする必要がある各PHPの先頭にあるファイルに追加しますinclude
。require
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
header('Location: /404page.php'); //The / represents the site root
exit;
}
このようにして、ページを直接開こうとしているユーザーは404ページにリダイレクトされます。
もちろん、POSTリクエストヘッダーを簡単に偽造することもできます。各Ajax呼び出しにPOSTパラメーターを追加することもできますが、ヘッダーを偽造できるパラメーターは、POSTされたデータを簡単に偽造することもできます。
サーバー側で強力な検証を行って、ユーザーがページを表示する権限を持っていること、および受信する必要のあるすべてのデータがそこにあり、有効であることを確認してください。誰かがリクエストヘッダーをいじって、アプリケーションの外部にある醜いページを見たとしても、結局のところ問題ではありません。