我正在解决应用程序的一些安全问题,并且我们已将 ViewStateEncryptionMode 设置为 true(在 web.config 中)。我注意到仍然有一个 _VIEWSTATE 字段,现在表单 _viewstateencrypted 上有一个新字段。我有两个问题:
- 这是否意味着 View 状态仍然可以被黑客攻击,或者 ASP.NET 会识别并仅使用加密字段。
- 我收到 OWASP ZAP 安全问题,说他们通过附加文本发现了 View 状态的注入(inject)问题。我该如何解决这个问题?
提前致谢
最佳答案
如果没有更多信息,很难说,但这里有一些随机猜测:
ViewStateEncryptionMode 无法设置为 true??我猜你的意思是“总是”,MSDN reference
如果 ViewStateEncryptionMode 为“始终”,则您的 View 状态已加密。这应该隐藏其中包含的信息,以免被窥探。
如果您不需要隐藏 View 状态内容,但想防止篡改(即修改),您可以设置enableViewStateMac='true'。这会添加加密哈希来检查内容是否被篡改。有关更多详细信息,请参阅 MSDN 文档。如果您愿意,此模式和 ViewStateEncryptionMode 可以同时处于事件状态。
您很可能看到来自 OWASP ZAP 的误报。您的编码 View 状态是否包含 SQL、JDBC 或 ODBC 等字符串?看这个bug .
这条消息让我隐约想起了 padding oracle 漏洞。你的服务器是否打了MS10-070补丁?请注意,这是旧东西,该漏洞是在 2010 年发现并修补的。
关于c# - View 状态的安全问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16907510/