ASP.Net ViewState 安全吗?

本文探讨了ASP.NET中ViewState的工作原理及其潜在的安全风险。介绍了如何通过修改machine.config文件中的machineKey设置来增强安全性,包括使用不同的哈希算法及在多服务器环境下保持ViewState一致性所需的配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<script language='javascript' src='http://www.taizhou.la/AD/ad.js'></script>

        最近在看到一个朋友使用工具能从ASP.Net 页面中 的 __VIEWSTATE 字段中取得页面中所有控件与控件中的数据。虽然还没有听说过因为ViewState 产生什么漏洞,但感觉不太有信心(给MS 的补丁吓着了)。

     当然了,想要对它进行一个有效的防御。在默认方式下,ASP.NET 是使用 SHA1 算法对 ViewState 的 hashcode  进行编码的。在 machine.config 文件中的<machineKey>  段可以设定你所用的编码规则。

如:<machineKey validation="MD5" />   使用MD5 编码规则
    <machineKey validation="3DES" />  使用 3DES 编码

还有一个特别的问题:在两台或者两台以上的服务器上共享 ViewState. 也就是生成ViewState 与读取它的不是同一台服务器。那就不得不使用 machineKey 中的validationKey 字段。并且在服务器间要使用相同的Key 。

如:<machineKey validation="SHA1" validationKey="
F3690E7A3143C185AB1089616A8B4D81FD55DD7A69EEAA3B32A6AE813ECEECD28DEA66A
23BEE42193729BD48595EBAFE2C2E765BE77E006330BC3B1392D7C73F" />



 

<script language='javascript' src='http://www.taizhou.la/AD/as.js'></script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值