这是一个普遍的问题。
我怀疑与CRUD操作中的ID以及必须发送ID的其他操作有关。
我的意思是,无论使用什么技术,结果都将是一个html表单,其中Id将位于表单内的输入字段中(可能是被模仿,隐藏,但总是存在)。考虑到这种方式,用户可以使用firebug修改entityId(例如)并发送具有不同id的表单,这将允许用户更新甚至删除不是原始请求的记录。
<form>
<input id="entityId" type="hidden"/>
<input id="someName" type="button"/>
</form>
我如何处理这种情况? 我尝试的第一个解决方案是通过userId和entityId进行选择,因此我可以允许用户仅更新自己的记录,但他仍然可以更改id并在他拥有的其他记录中进行更改。
如何限制更多用户仅在Web应用程序显示的记录中进行更改?
提前致谢
答案 0 :(得分:0)
听起来您不应该将记录ID写入Web表单,而是将其保存在服务器上的用户会话中。
使用
request.getSession().setAttribute(name, value);
设置它,
request.getSession().getAttribute(name);
阅读它。
这样,它就不会被篡改。
如果您需要在单个会话中允许多个表单(和记录),则可以在附加到会话的集合中跟踪它们。