c# - ASP.Net 网站中的 ViewStateEncryption 是否必须使用 EnableViewStateMAC=true?

标签 c# asp.net .net encryption viewstate

我目前正在解决 ASP.net 网站应用程序中的一些安全问题。

其中一个问题是 ViewState未加密。

所以我在 StackOverFlow 和其他地方检查了如何加密 viewState,我使用 <pages viewStateEncryptionMode="Always" /> 做到了这一点并像这样添加 3DES 机器 key <machineKey validation="3DES" />在 Web.config 中。

我想知道 "EnableViewStateMAC=true"也是强制性必要的吗?因为我在网上找到的一些建议解决方案中提到了这一点。 但是,在我的检查中,我发现即使没有这个加密也能正常工作。

[注意:我必须在应用程序级别 (Web.config) 进行这些更改,因为对单个页面进行更改不是此应用程序的实际解决方案。]

最佳答案

永远不要将 EnableViewStateMac 设置为 false,即使启用了加密。 MAC保证客户端不能恶意篡改ViewState的内容。 (加密本身不足以保证这一点;MAC 是必需的。)

EnableViewStateMac 属性将在产品的 future 版本中删除,因为没有正当理由将其设置为“false”。

关于c# - ASP.Net 网站中的 ViewStateEncryption 是否必须使用 EnableViewStateMAC=true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14052249/

相关文章:

c# - 对象引用未设置到数据集中对象的实例

c# - 需要帮助找出 NullReferenceException

asp.net - 带有 HTTP header 的 URL 重写规则

asp.net - 我们可以在同一个服务(ServiceContract)中为不同的方法(OperationContract)使用 DataContractSerializer 和 XMLFormatSerializer 吗?

c# - 如何使用 System.Random 获得高质量的归一化带符号随机 float ?

c# - 如何在 C# 中创建带引号的字符串

c# - 字符串中出现的字母

c# - mongodb C# 驱动程序中缺少 FindAndModify

c# - 是否有直接使用 UTF-8 的 .NET StringBuilder?

.net - ASP MVC HTML Helpers - 好还是坏?