Asp.net mvc 3 关于隐藏字段加密&;是否使用SSL时签名
SSL在传输过程中用于防止第三方读取和修改传输的数据 向服务器发送数据并从服务器获得答案的用户显然可以以任何方式查看和修改数据。因此,用户可以修改包含视图状态的隐藏表单字段。Base64转义在这里不提供任何保护,它只是确保二进制数据不会被字符集对话弄乱的一种方法 因此,在可能的情况下,您的视图状态/隐藏字段包含可信信息,恶意用户不得修改这些信息,您需要为其启用加密和签名 我对这句话有点困惑 这只是一种确保二进制数据不会被字符集对话弄乱的方法。 用户试图说的“二进制数据不会被字符集对话弄乱”可以更详细地解释它 如何为隐藏字段启用加密和签名 如何签署一个隐藏的领域?请指导我在asp.net MVC中加密和签名隐藏字段的所有步骤Asp.net mvc 3 关于隐藏字段加密&;是否使用SSL时签名,asp.net-mvc-3,ssl,encryption,signing,Asp.net Mvc 3,Ssl,Encryption,Signing,SSL在传输过程中用于防止第三方读取和修改传输的数据 向服务器发送数据并从服务器获得答案的用户显然可以以任何方式查看和修改数据。因此,用户可以修改包含视图状态的隐藏表单字段。Base64转义在这里不提供任何保护,它只是确保二进制数据不会被字符集对话弄乱的一种方法 因此,在可能的情况下,您的视图状态/隐藏字段包含可信信息,恶意用户不得修改这些信息,您需要为其启用加密和签名 我对这句话有点困惑 这只是一种确保二进制数据不会被字符集对话弄乱的方法。 用户试图说的“二进制数据不会被字符集对话弄乱”可以更
谢谢当用户控制浏览器时,您对“恶意用户”几乎无能为力。唯一可靠的方法是在服务器端对输入进行过滤和双重检查。如果您真的想要,您可以执行一些模糊处理,但加密和签名并不能帮助您。在最坏的情况下,您将在不存在信任的发送数据中创建信任
确保服务器安全,最好使用更高级的语言执行良好的过滤(无缓冲区溢出),并确保TLS设置受到保护,免受已知攻击(例如BEAST攻击)。这是您所能做的最好的…您可以使用MVC安全扩展项目 说你要保护的字段是Id 在控制器post方法上添加:
[ValidateAntiModelInjection("Id")]
在视图中添加:
@Html.AntiModelInjectionFor(m => m.Id)
@Html.HiddenFor(m => m.Id)
在post上,您的Id字段将被验证。注意,这更像是一个安全问题。stackexchange.com您可以指导我如何在服务器端过滤和双重检查输入吗?你能告诉我如何从服务器端混淆数据吗。因此,当在客户端渲染时,它将是完全防篡改和安全的。感谢我是否应该再次将此问题发布到security.stackexchange.com以获得更好的答案???@Mou,顺序为,不,不可能,不,这将导致重复。