C# viewstate上的安全问题

C# viewstate上的安全问题,c#,asp.net,owasp,C#,Asp.net,Owasp,我正在为我们的应用程序解决一些安全问题,我们已将ViewStateEncryptionMode设置为true(在web.config)。我注意到仍然有一个_VIEWSTATE字段,现在表单上有一个新字段_viewstateencrypted。我有两个问题: 这是否意味着viewstate仍可能被黑客攻击,或者asp.net将识别并仅使用加密字段 我得到了一个OWASP ZAP安全问题,说他们通过追加文本发现了viewstate的注入问题。我如何解决这个问题 提前感谢没有更多信息很难说,但这里有一

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

  • 这是否意味着viewstate仍可能被黑客攻击,或者asp.net将识别并仅使用加密字段
  • 我得到了一个OWASP ZAP安全问题,说他们通过追加文本发现了viewstate的注入问题。我如何解决这个问题

  • 提前感谢

    没有更多信息很难说,但这里有一些随机猜测:

    • ViewStateEncryptionMode无法设置为true??我猜你的意思是“永远”

    • 如果ViewStateEncryptionMode始终为“是”,则您的viewstate已加密。这将隐藏它所包含的信息,以防窥探

    • 如果不需要隐藏viewstate内容,但希望防止篡改(即修改),可以将enableViewStateMac设置为true。这将添加加密哈希以检查内容是否被篡改。有关更多详细信息,请参阅MSDN文档。如果需要,此模式和ViewStateEncryptionMode可以同时处于活动状态

    • 很可能您看到的是来自OWASP ZAP的假阳性。编码的viewstate是否包含SQL、JDBC或ODBC等字符串?看这个

    • 这条消息使我隐约想起了那次攻击。您的服务器是否已使用修补程序进行修补?请注意,这是老东西,漏洞是在2010年发现并修补的


    如果未加密VIEWSTATE,则会带来安全风险(任何人都可以修改VIEWSTATE值并发布到您的页面。)

    要查看它是否加密,请转到此处并粘贴VIEWSTATE值:

    如果该页面可以解码VIEWSTATE,则该页面未加密

    要“保护”VIEWSTATE,您需要在web.config中设置以下内容:

    <pages enableViewState="true" enableViewStateMac="true">