使用 PHP 会话防止字段编辑
Prevent field editing using PHP session
使用 PHP 会话变量来防止用户编辑 hidden/input 字段值是一种很好的 idea/good 做法吗?例如,假设我有以下字段:
<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"
的元素),则用户未获得授权。
是否有更广泛接受的解决方案或类似的解决方案通常就足够了?
一般来说,您仍然需要相信最终用户会为您提供要修改的正确数据。在该上下文中,您唯一可以验证的是提供的值看起来像是要插入数据库的有效数据,这通常是数据库作业本身,因为有效数据是数据库 table 的状态来判断。
有很多方法可以解决这个问题。除非我更了解您要做什么,否则我无法提供完善的详细解决方案。
祝你好运
使用 PHP 会话变量来防止用户编辑 hidden/input 字段值是一种很好的 idea/good 做法吗?例如,假设我有以下字段:
<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"
的元素),则用户未获得授权。
是否有更广泛接受的解决方案或类似的解决方案通常就足够了?
一般来说,您仍然需要相信最终用户会为您提供要修改的正确数据。在该上下文中,您唯一可以验证的是提供的值看起来像是要插入数据库的有效数据,这通常是数据库作业本身,因为有效数据是数据库 table 的状态来判断。
有很多方法可以解决这个问题。除非我更了解您要做什么,否则我无法提供完善的详细解决方案。
祝你好运