如何判断 ASP.Net 应用程序中的视图状态是否已被篡改?
题
在一次有关安全性的讨论中,我团队中的一位开发人员询问是否有办法判断视图状态是否已被篡改。我很不好意思地说我不知道答案。我告诉他我会找到答案,但我想我应该先给这里的人一个回答的机会。我知道有一些自动验证,但是如果未启用事件验证,有没有办法手动执行?
解决方案
EnableViewStateMac 页面指令
其他提示
默认情况下,ViewState 使用 MAC 密钥(来自计算机或来自 web.config 文件)进行 MIME 编码和散列,这有助于防止篡改(即,解码爆炸)。如果您想分别获得进一步的保护和更少的开销,您还可以加密和压缩 ViewState。看 MS 视图状态 和 CodeProject.com
您也许可以手动执行此操作,但您只需实现已有的相同算法即可。在页面上禁用 ViewState 验证通常是一个坏主意。
不隶属于 StackOverflow