認証されたユーザーからの特定の Ajax リクエストのみを受け入れる

StackOverflow https://stackoverflow.com/questions/15366

  •  08-06-2019
  •  | 
  •  

質問

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

例えば:

というメインページがあるとします。 ブログ.php (創造性が豊かであることはわかっています)。というページがあるとします。 削除.php パラメータを探します post_id 次に、データベースからいくつかのエントリを削除します。

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

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

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

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


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

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

役に立ちましたか?

解決

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

他のヒント

追加のアクションを実行せずに認証のためにセッションに依存することはお勧めできません。続きを読む.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top