2013-06-03 72 views
1

我正在解決我們的應用程序的一些安全問題,並且我們將ViewStateEncryptionMode設置爲true(在web.config中)。我注意到仍然有一個_VIEWSTATE字段,現在窗體_viewstateencrypted上有一個新字段。我有兩個問題:視圖狀態上的安全問題

  1. 這是否意味着仍然可以被黑客攻擊的視圖狀態或將ASP.NET識別並僅使用加密的領域。
  2. 我得到一個OWASP ZAP安全問題,說他們通過附加文本發現視圖狀態的注入問題。我該如何解決這個問題?

由於提前

回答

0

很難說沒有更多的信息,但這裏有幾個隨機猜測:

  • ViewStateEncryptionMode不能設置爲true?我想你的意思是'一直',MSDN reference

  • 如果ViewStateEncryptionMode總是,你的viewstate是加密的。這應該隱藏它包含的信息從窺探。

  • 如果您不需要隱藏視圖狀態內容,但想要防止篡改(即修改),則可以設置enableViewStateMac ='true'。這會添加一個加密哈希來檢查內容是否被篡改。有關更多詳細信息,請參閱MSDN文檔如果你願意,這個和ViewStateEncryptionMode可以同時處於活動狀態。

  • 很可能你會看到來自OWASP ZAP的誤報。你的編碼視圖狀態是否包含諸如SQL,JDBC或ODBC之類的字符串?看到這bug

  • 該消息隱約提醒我填充oracle的漏洞。您的服務器是否使用MS10-070進行了修補?請注意,這是老東西,在漏洞被發現並於2010年

0

修補視圖狀態是一種安全風險,如果它是不加密的(任何人都可以修改VIEWSTATE值,並張貼到您的網頁。)

要查看它已加密,請到此處並粘貼您的VIEWSTATE值:http://ignatu.co.uk/ViewStateDecoder.aspx

如果該頁面可以解碼VIEWSTATE,那麼它不會被加密。

爲了 '保護' 你VIEWSTATE你需要設置在你的web.config以下:

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