c# - View 状态的安全问题

标签 c# asp.net owasp

我正在解决应用程序的一些安全问题,并且我们已将 ViewStateEncryptionMode 设置为 true(在 web.config 中)。我注意到仍然有一个 _VIEWSTATE 字段,现在表单 _viewstateencrypted 上有一个新字段。我有两个问题:

  1. 这是否意味着 View 状态仍然可以被黑客攻击,或者 ASP.NET 会识别并仅使用加密字段。
  2. 我收到 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/

相关文章:

java - 在 Servlet 中编写 HTTP 响应时存在跨站脚本缺陷(下载 excel 文件)

c# - 找不到引用组件 Microsoft.CSharp

c# - 帮助 Linq 查询

c# - 如何迁移到 MVVM

asp.net - IIS7环境下Application_Start异常处理

asp.net - ASP/ASP.Net 中的 DNS 查询

java - 当用户简单导航到我的 Web 应用程序中的任何页面时,为什么 OWASP CSRF-guard 会错误地检测到攻击?

java.util.Properties.load() 问题 OWASP Top 10 2017

c# - 如何获取当前的Azure FunctionNameAttribute?

c# - 无需身份验证即可解码签名请求