3

AJAXを使用してPHPファイルにアクセスするWebページが欲しい./ajax/file.ajax.php

問題は、人々がブラウザにアドレスを入力して、そのPHPファイルに直接アクセスできるようにしたくないということです。

AJAXリクエストのみがファイルにアクセスできるようにする方法はありますか?

これを達成するためにPHPファイルで確認できるものはありますか?

4

2 に答える 2

4

jQueryを使用してXHRを作成している場合は、カスタムヘッダーが設定されX-Requested-Withます。あなたはそれをチェックして、あなたの応答を提供する方法を決定することができます。

$isXhr = isset($_SERVER["HTTP_X_REQUESTED_WITH"])
         AND strotlower($_SERVER["HTTP_X_REQUESTED_WITH"]) == "xmlhttprequest";

ただし、これはなりすましには些細なことです。以前は、これを使用して、ページ全体をレンダリングするか(設定されていない場合)、ページフラグメントをレンダリングするか(設定されている場合は現在のページに挿入するか)を決定しました。

于 2012-10-16T10:44:52.230 に答える
1

カスタムヘッダーを使用していない、jQueryまたは興味がない/使用できない場合 (alex提供されているものに合わせて)、Ajax リクエストでいくつかのデータを単純POST化し、その特定のファイルでそのデータが送信されたかどうかを確認することができます。か否か。送信するGETとアドレス バーに表示されるので、 をお勧めしPOSTます。

<?php

if (empty($_POST['valid_ajax']))
    header('Location: /');

?>

手作りのデータを提供することでそれをだますことができるので、それは確実ではありませんが、問題がそれほど重要でない場合は、何もないよりはましです.

于 2012-10-16T10:59:47.263 に答える