【发布时间】:2013-11-01 18:35:16
【问题描述】:
所以有时当我在页面之间传递变量时,如果我想将变量传递到表单操作中,我只需将其存储在<input type="hidden"> 元素中。这通常效果很好,但我意识到有人可以轻松进入 HTML 标记并简单地将 hidden 更改为输入文本,因此他们可以轻松编辑正在传递的内容(如果说他们正在编辑自己的个人资料,这可能会很糟糕,我已将其 ProfileID 存储在隐藏的输入字段中,并将其更改为其他人的)
我想知道是否有解决此问题的最佳做法?我和一些同事谈过,他们说在提交表单时要在服务器上进行检查,以确保他们没有传递不正确的信息。是最好的方法还是有其他方法?
【问题讨论】:
-
sessions是否超出您的项目范围? -
你可以对值进行编码/加密
-
@ShankarDamodaran 我们确实经常使用会话,但就像我说的那样,我将它存储在隐藏的输入中,以便它可以通过表单传递。我还认为有时我们会破坏会话......我的同事告诉我如何也可以操纵会话变量?
-
@Einacio 他们可以解码/解密它。不要相信用户在没有进一步身份验证的情况下提交的内容。
-
@Izkata 好吧,如果用户可以窃取服务器上mcrypt或openssl等使用的私钥,那么任何保护机制无论如何都没用