ASP.NET VIEWSTATE初探[3] 軟件測試
七、禁用 ViewState
通過將對象的 EnableViewState 屬性設置為 False 禁用了 ViewState??梢葬槍蝹€控件、整個頁面或整個應用程序禁用 ViewState,如下所示:
每個控件(在標記上)
每個頁面(在指令中) <%@ Page EnableViewState="False" ?%>
每個應用程序(在 web.config 中)
八、使 ViewState 更安全
由于 ViewState 沒有被格式化為清晰的文本,某些人有時會認為它被加密了,其實并沒有。相反,ViewState 只是進行了 Base64 編碼,以確保值在往返過程中不會發生變化,而并不考慮應用程序使用的響應/請求編碼。
可以向應用程序中添加兩種 ViewState 安全級別:
1)防篡改
2)加密
需要注意的是,ViewState 安全性對于處理和呈現 ASP.NET 頁面所需的時間有直接的影響。簡單地說,安全性越高,速度越慢。因此如果不需要,請不要為 ViewState 添加安全性。
九、防篡改
盡管散列代碼不能確保 ViewState 字段中實際數據的安全,但它能夠顯著降低有人通過 ViewState 騙過應用程序的可能性,即防止回傳應用程序通常禁止用戶輸入的值。
可以通過設置 EnableViewStateMAC 屬性來指示 ASP.NET 向 ViewState 字段中追加一個散列代碼:
原文轉自:http://www.anti-gravitydesign.com