Webアプリケーションではもちろん多くの場合CRUD(Create, Retriever, Update, Delete)をサポートします。
基本的なプログラマーは、次のようなことを行います(検証なし):
delete?room_id=12
update?room_id=13
表示される room_id は、ユーザー/クライアントに属するルームのみです。最初の認証は、ユーザーとパスワードのみを使用しています。まあそれは標準です。
しかし、ユーザーを信頼すべきではないと思います。悪意のあるユーザーは、自分のものではない room_id を推測する可能性があります。お気に入りdelete?room_id=199
私はプログラマーの友人に尋ねましたが、彼らはこの問題についてまったく考えていませんでした。
それを防ぐために、関連するオブジェクトの user_id を常に渡すという基本的な解決策があります。アクションの前にそのようなクエリを実行しis the room_id belong to the user
ます。これが唯一の解決策である場合、既に作成したすべてのクエリを変更する必要があります。
問題は、この基本的な問題に対する適切な解決策があるかどうかです。
ありがとう