0

私はメッセージシステム(必要に応じてプライベートメッセージ)を実装していますが、ユーザーが持っているメッセージのリストをテキストリンクで表示できるようにしたいので、ボタンを開く必要はありません。message_id(データベース内の一意の値)はURLを介して渡されます。(www.example.com/message/view/16のようなもの)ユーザーIDのセッションがメッセージの送信先のユーザーIDと一致することを確認すると仮定しますが、これで問題ありませんか?より安全にするために、乱数を追加してそれをセッションとして設定し、表示時にそれを確認することができます。

このアイデアを忘れて、送信ボタンを押したままにしてメッセージを表示する必要がありますか?

4

2 に答える 2

4

POSTリクエストは、GETリクエストよりも安全性を提供しません。適切なWebデバッグツールであれば、POSTリクエストを偽造できます。ユーザー入力データを決して信用してはいけません。安全のために認証を常に再確認してください!

とはいえ、GETリクエストのセマンティクスは、ここで実行しようとしていることと一致します

HTTP標準では、GET要求は重要な結果を招くことなく繰り返し可能である必要があるとされています。たとえば、GETリクエストを使用してデータを表示することは適切です(これらは非常に些細な結果であるため、カウンターのインクリメントなどの小さなことを行う可能性があります)。実際、GETおよびHEADは「安全」と見なされる2つの要求メソッドです。

一方、POSTリクエストは、メッセージの送信や注文など、重要な結果をもたらすことが予想されます。誤って二度演奏したくないもの。最近のほとんどのブラウザは、ページをリロードするとPOSTリクエストが再度実行される場合にユーザーに警告することで、これを尊重しています。

于 2012-11-21T01:02:43.493 に答える
1

メッセージを表示するためにGET値を使用することは、ユーザーがログインしたままであると仮定すると、メッセージなどをブックマークできるようになるため、はるかに優れたアイデアです。

于 2012-11-21T01:04:12.420 に答える