在表单元素中存储主键值以便在表单提交后存储数据是一种好习惯吗?
例如,如果我的select
内有form
标记,请执行以下操作:
<select name="city">
<option value="3">Kolkata</option>
<option value="7">Bangalore</option>
<option value="1">Delhi</option>
<option value="4">Mumbai</option>
</select>
在我的城市表中,它们存储如下:
Id Name
-- ----
1 Delhi
3 Kolkata
4 Mumbai
7 Bangalore
提交表单后,提取值非常简单,我们直接获取外键值而无需查找City表。
但是,我觉得这可能是一个主要问题,因为人们可以通过开发人员工具轻松操纵这些值。
如果不是这种方法,那么一般和广泛接受的规范是什么?
修改
由于此问题已被建议为this的副本,因此我添加了我的理由:
这个问题涉及开发人员遵循的一般做法的方面,如果遵循特定的做法,则处理与安全问题有关的其他问题。
答案 0 :(得分:0)
这是一个非常有效的选项,经常使用,很可能是最广泛接受的解决方案。
但是,与从不受信任的计算机(Web浏览器)传递到服务器的所有数据一样,您需要确保在对数据执行操作或将其保存到服务器之前验证数据。数据库。您说明某人可能将选择的值更改为无效的ID(例如10)是正确的。如果收到无效的Id,则应显示错误消息。