我开发的应用程序(在PHP)中,我会告诉用户他做基于以前的条目一些派生值和用户的报告将检查正确性 - 如果正确,则用户可以按保存按钮将其提交到数据库。否则,用户应该能够编辑以前的条目,但他不应该能够更改该报表中的派生值。
为此,我将这些值包含在隐藏的输入字段中,因此普通用户无法更改这些值,但是如果Web开发人员可以在浏览器中检查元素并更改这些值。
我们可以预防这些类型的攻击吗?如果是这样,怎么样?
我的想法
我可以让所有的隐藏字段的字符串,对其进行加密,并保存在另一个隐藏字段 - 回发后我可以交叉验证实际值和加密值。
这是实现这一目标的正确方法吗?以及如何做到这一点 你觉得呢?
你有没有想过使用会话变量,而不是使用表单域? – wribit
@wribit谢谢我没有这样想,如果我需要传递30个值,它会更好吗?或造成任何开销? – ddw147
如果有许多用户(比如说100+)要记录一次,需要相同的会话变量,那么会造成开销 - 当然......但是为了您的担心,我认为这是一个值得冒小风险的解决方案。 – wribit