9

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

例えば:

blog.phpという名前のメイン ページがあるとします(創造性は豊富です)。また、パラメーターpost_idを探してデータベースからエントリを削除するdelete.phpというページがあるとします。

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

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

blog.php でセッション変数を設定する簡単なテストを行い、delete.php への ajax 呼び出しを行って、セッション変数が設定されているかどうか(設定されていない)を返しました。

この種のことを処理するための受け入れられた方法は何ですか?


わかった。初めてこれを試したとき、私は頭がおかしくなったに違いありません。

上記のような別のテストを行ったところ、完全に機能しました。

4

2 に答える 2

7

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

于 2008-08-18T23:20:46.600 に答える
2

追加のアクションを実行せずに、認証をセッションに依存することはお勧めしません。 詳細については、をご覧ください

于 2008-08-19T21:09:28.860 に答える