我目前正在修复 ASP.net 网站应用程序中的一些安全问题。
问题之一是ViewState
没有加密。
所以我确实在 StackOverFlow 和其他地方检查了如何加密 viewState,并且我使用<pages viewStateEncryptionMode="Always" />
并像这样添加 3DES 机器密钥<machineKey validation="3DES" />
在 Web.config 中。
我想知道是否"EnableViewStateMAC=true"
也是强制必须的吗?因为我在网上找到的一些建议解决方案中提到了这一点。
但是,在我的检查中,我发现即使没有这个加密也能工作。
[注意:我必须在应用程序级别 (Web.config) 进行这些更改,因为更改单个页面对于此应用程序来说不是一个实用的解决方案。]
即使启用了加密,也不要将 EnableViewStateMac 设置为 false。 MAC保证客户端不能恶意篡改ViewState的内容。 (加密本身不足以保证这一点;MAC 是必要的。)
EnableViewStateMac 属性将在产品的未来版本中删除,因为没有正当理由将其设置为“false”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)