使用PHP会话变量来防止用户编辑隐藏/输入字段值是一个好主意/好习惯吗?例如,假设我有以下字段:
<input type="hidden" object_id="1" />
<input type="text" object_id="2" />
etc...
我需要在前端有object_id
,这样我就可以告诉用户提交时需要操作哪些数据库条目(假设他们有权对数据进行操作)。 $_SESSION
变量看起来像[obj_id = 1, obj_id = 2]
。授权过程的一部分确保用户尝试操作的所有条目都存在于会话中。如果存在一些差异(例如,带有object_id="3"
的元素),则用户未获得授权。
是否有更广泛接受的解决方案或类似的解决方案通常就足够了?
答案 0 :(得分:0)
通常,您仍然需要信任最终用户,以便为您提供要修改的正确数据。您可以在该上下文中验证的唯一事情是提供的值看起来像要插入到数据库中的有效数据,这通常是数据库作业本身,因为有效数据是数据库表的状态到确定。
有很多方法可以解决这个问题。除非我更了解你想要做什么,否则我无法提供完善的详细解决方案。
祝你好运