使用 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 的状态来判断。

有很多方法可以解决这个问题。除非我更了解您要做什么,否则我无法提供完善的详细解决方案。

祝你好运