AJAXを使用してPHPファイルにアクセスするWebページが欲しい./ajax/file.ajax.php
問題は、人々がブラウザにアドレスを入力して、そのPHPファイルに直接アクセスできるようにしたくないということです。
AJAXリクエストのみがファイルにアクセスできるようにする方法はありますか?
これを達成するためにPHPファイルで確認できるものはありますか?
jQueryを使用してXHRを作成している場合は、カスタムヘッダーが設定されX-Requested-With
ます。あなたはそれをチェックして、あなたの応答を提供する方法を決定することができます。
$isXhr = isset($_SERVER["HTTP_X_REQUESTED_WITH"])
AND strotlower($_SERVER["HTTP_X_REQUESTED_WITH"]) == "xmlhttprequest";
ただし、これはなりすましには些細なことです。以前は、これを使用して、ページ全体をレンダリングするか(設定されていない場合)、ページフラグメントをレンダリングするか(設定されている場合は現在のページに挿入するか)を決定しました。
カスタムヘッダーを使用していない、jQuery
または興味がない/使用できない場合 (alex
提供されているものに合わせて)、Ajax リクエストでいくつかのデータを単純POST
化し、その特定のファイルでそのデータが送信されたかどうかを確認することができます。か否か。送信するGET
とアドレス バーに表示されるので、 をお勧めしPOST
ます。
<?php
if (empty($_POST['valid_ajax']))
header('Location: /');
?>
手作りのデータを提供することでそれをだますことができるので、それは確実ではありませんが、問題がそれほど重要でない場合は、何もないよりはましです.