C# 防篡改ASP.NET视图状态
我的团队目前在现有项目中使用ASP.NET webforms。 有些功能将值存储在viewstate中,我不介意这些值是base64可解码的,但我不希望它们被篡改。我添加了这段代码,但键值不同。;)C# 防篡改ASP.NET视图状态,c#,asp.net,vb.net,iis,C#,Asp.net,Vb.net,Iis,我的团队目前在现有项目中使用ASP.NET webforms。 有些功能将值存储在viewstate中,我不介意这些值是base64可解码的,但我不希望它们被篡改。我添加了这段代码,但键值不同。;) 这是否会阻止viewstate被篡改。我的理解是SHA1散列一些东西,然后检查它是否被篡改,然后才接受它为合法 我还认为,在IIS版本中,这很容易受到填充oracle攻击。安装修补程序是否足够?启用ViewStateMAC,您的ViewState将被安全签名,使网站访问者无法在返回ViewSta
这是否会阻止viewstate被篡改。我的理解是SHA1散列一些东西,然后检查它是否被篡改,然后才接受它为合法
我还认为,在IIS版本中,这很容易受到填充oracle攻击。安装修补程序是否足够?启用ViewStateMAC,您的ViewState将被安全签名,使网站访问者无法在返回ViewState之前修改它。默认情况下是否启用此功能?或者我必须在web.config中设置它。这还会对性能造成影响吗?一个很好的经验法则是,任何时候数据通过网络服务器或公司网络之外的线路传输,都可以由用户检索和操作。即使数据是加密的。因此,如果你真的想保护数据,那么首先不要将其发送给客户端。那么如何防止viewstate被客户端看到呢;这就足够了
<machineKey
validationKey="DD913F8422F51CD25A5A94056B66BF314E51362F2AE67197FCD471A2745AA81AD6CDFB035065DA8906B86572635C0C77876C3694ECA39D99858D489CE6BDB35B"
decryptionKey="1D80D6A0931A788BCDCB6E5EE9450C53436C02FED7675A0EE922801CDEF808FE"
validation="SHA1"
decryption="AES"
/>