0

私の JavaScript ファイルには次のコードが含まれています。

$.post('./admin/test.php', {
        todoID:todoID
    }, function(data){
        $("."+todoID).html(data);           
    });

そして、応答を取得する必要がある私の PHP ファイルには、次のものが含まれています。

  if (!defined(__ACCESS)) {
     die("Access Denied!");
  }  

  echo '<span><input type="button" value="Edit" /></span>
  <span><input type="button" value="View" /></span>
  <span><input type="button" value="Delete" /></span>';

もちろん、「Access Denied!」という応答が返ってきます。

は index.php で定義されているため__ACCESSです。これは、誰かが検証せずに PHP スクリプトを実行できるようにしたくないためです (ユーザーが OK の場合、スクリプトを個別に呼び出そうとすると、アクセスが拒否されます)。

その呼び出しを検証する方法はありますか?

4

2 に答える 2

1

私は長い間PHPコードに触れていませんが、この種の一般的なメカニズムは次のとおりです。

  1. ユーザーはWebアプリにログインします。サーバーはセッションを生成し、CookieとしてセッションIDをクライアントに返します。

  2. Ajax呼び出しはすべてのCookieを保持するため、POSTを実行すると、セッションIDが再度送信されます。

  3. リクエストに有効な(期限切れではない)セッションIDがある場合、オリジンは認証済みと見なされます。

この他の質問を見てください:phpログインまたは認証セッションを実装する方法

于 2012-08-18T03:26:14.657 に答える
0

簡単な修正は次のとおりです。

include 'index.php';
if (!defined(__ACCESS)) {
    die("Access Denied!");
}

より良い修正は、適切な認証フレームワークを使用することです。または、一般的なフレームワークですらあります。

于 2012-08-18T02:04:54.287 に答える