2008-08-18 8 views
9

特定のページへの特定のajax呼び出しが認証されたユーザーからのみ受け入れられるようにするためのベストプラクティスは何ですか?例えば認証されたユーザーからの特定のajax要求のみを受け入れる

はのは、私は(私が知っている、創造性があふれて)blog.phpと呼ばれるメインページを持っているとしましょう。 delete.phpというページがあり、パラメータpost_idを探して、データベースからいくつかのエントリを削除するとしましょう。

この非常にわかりやすい例では、blog.phpにajax経由でリクエストを送信してdelete.phpにエントリを削除するメカニズムがあります。

このメカニズムは、blog.php上の認証されたユーザーにのみ利用できるようになります。しかし、誰かが乱数の束でdelete.phpを呼び出してサイト内のすべてを削除するのを止めるのはどうですか?

は、私は(それがありませんでした)セッション変数が設定されたりしませ た場合に返すdelete.phpするAJAX呼び出しをblog.phpでセッション変数を設定していた簡単なテストをしました。

このようなことを処理するには、どのような方法がありますか?


OK。私はこれを初めて試みたときに狂っていたに違いない。

私は上記のような別のテストを行っただけで、完全に機能しました。

答えて

8

あなたはセッション変数を使用しようとしていました。ユーザーが認証されると、その情報をセッションに保存して、後続の各ページビューにその情報が表示されるようにする必要があります。 $ _SESSIONにアクセスする前に、両方のページ(blog.phpとdelete.php)でsession_start()を呼び出していることを確認してください。また、クッキーが有効になっていることを確認します。そうでない場合は、クエリ文字列に追加のパラメータ(通常はPHPSESSID = < session_id()>)を渡す必要があります。

3

追加の操作を行わずに認証にセッションを使用することはお勧めしません。 Read more on

関連する問題