【发布时间】:2012-12-12 16:47:58
【问题描述】:
我目前正在修复我们的 ASP.net 网站应用程序中的一些安全问题。
其中一个问题是ViewState 未加密。
所以我确实在 StackOverFlow 和其他地方检查了如何加密 viewState,我使用 <pages viewStateEncryptionMode="Always" /> 并在 Web.config 中添加像 <machineKey validation="3DES" /> 这样的 3DES 机器密钥。
我想知道"EnableViewStateMAC=true" 是否也是必需的?因为我在网上找到的一些建议解决方案中提到了这一点。
但是,在我的检查中,我发现即使没有这个加密也能正常工作。
[注意:我必须在应用程序级别 (Web.config) 进行这些更改,因为对这个应用程序进行单独的页面更改不是一个实际的解决方案。]
【问题讨论】:
-
如果您要加密您的 ViewState,最好也对其进行 MAC 处理,以检测篡改数据的攻击者。单独加密并不能提供消息的完整性。
标签: c# asp.net .net encryption viewstate