【发布时间】:2014-11-19 02:44:34
【问题描述】:
这是一个普遍的问题。
我对 CRUD 操作中的 ID 和其他必须发送 ID 的操作有疑问。
我的意思是,无论使用什么技术,结果都将是一个 html 表单,其中 Id 将位于表单内的输入字段中(可能被滥用、隐藏,但始终存在)。考虑到这种方式,用户可以使用 firebug(例如)修改 entityId 并使用不同的 id 发送表单,这将允许用户更新甚至删除不是原始请求的记录。
<form>
<input id="entityId" type="hidden"/>
<input id="someName" type="button"/>
</form>
我该如何处理这种情况? 我尝试的第一个解决方案是通过 userId 和 entityId 进行选择,因此我可以允许用户仅更新他自己的记录,但他仍然可以更改 id 并更改他拥有的其他记录。
如何限制更多用户仅在 Web 应用程序显示的记录中进行更改?
提前致谢
【问题讨论】:
-
也许从您的 servlet 方面,在会话变量中为用户设置当前 entityid 并检查它们是否匹配。
-
您需要检查提交的值是否有效并且他们有修改它们的权限
-
@AndrewBarber 我猜 OP 知道这一点并询问如何
-
@ScaryWombat Wombat 你是对的。这个想法是如何。不确定将其存储在会话中是否是一个好主意,如果我有一个包含 100 条记录的网格并且我可以编辑所有记录,如果我将所有记录存储在会话中,它可能会导致内存问题。跨度>
标签: java security design-patterns crud