在传输过程中使用 SSL 以防止第三方读取和修改传输的数据。
向服务器发送数据并从服务器获得答案的用户显然可以按照自己的意愿查看和修改数据。因此用户可以修改包含 View 状态的隐藏表单域。 Base64 转义在这里不提供任何保护,它只是一种确保二进制数据不被字符集对话搞乱的方法。
因此,在可能的情况下,您的 View 状态/隐藏字段包含可信赖的信息,恶意用户不得修改,您需要为其启用加密和签名。
我对这个声明有点困惑
这只是一种确保二进制数据不会被字符集对话搞乱的方法。 什么用户试图说“二进制数据没有被字符集对话弄乱”,任何人都可以更详细地解释它。
如何为隐藏字段启用加密和签名?
如何签署隐藏字段?请指导我在 asp.net MVC 中加密和签署 hiddent 字段的所有步骤?
谢谢
最佳答案
由于用户控制浏览器,因此您对“恶意用户”无能为力。您唯一可以可靠地做的就是在服务器端过滤并仔细检查输入。如果你真的想要,你可以执行一些混淆,但加密和签名不会帮助你。在最坏的情况下,您将在没有发送数据的情况下建立对发送数据的信任。
确保您的服务器安全,最好使用高级语言(无缓冲区溢出)执行良好的过滤,并确保您的 TLS 设置免受已知攻击(例如 BEAST 攻击)。这是你能做的最好的...
关于asp.net-mvc-3 - 关于是否使用SSL时的隐藏字段加密和签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18959808/