在 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
。如果这是唯一的解决方案,那么我必须修改我已经编写的所有查询。
问题是,对于这个基本问题有什么好的或更好的解决方案吗?
谢谢