1

session_idを使用してPHPAJAX呼び出しを承認する方法、または実際に$_SESSION変数に対して承認する方法についてはあまり明確ではありません。

ログイン時にデータベースに保存し、各AJAX呼び出しで$ _SESSIONストレージに対して参照する必要がありますか?

これらの主題はおそらく無限に議論されていることを私は知っていますが、明確な答えを見つけることができないようです。

前もって感謝します!

啓示

うわー、承認はセッションがあるかどうかに限定されていますか?怖い。.netのweb.configのdeny="?"はそれだけなのだろうか。やっています。助けてくれてありがとう!

4

1 に答える 1

2

セッションデータはサーバー側であるため、セッションは常に存在します。そのセッションを許可するCookieを持っている限り、許可されたユーザーと見なされます。

AJAXを介して呼び出されるファイルの先頭で、次のようにします。

<?php

session_start();
if(!isset($_SESSION['id'])) {
    exit;
}

?>

アクティブなセッションがない限り、その時点以降は何も実行されません。

他の人がAJAXファイルに直接アクセスするのを防ぐこともできます。これを追加するだけです。

<?php

if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) OR ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest')) {
    exit;
}

?>

誰かがそれを回避することはできますが、何もないよりはましです。

于 2012-10-02T00:29:22.457 に答える