设为首页 加入收藏

TOP

.NET框架如何保证ViewState的性能和安全性?
2014-11-10 15:30:06 来源: 作者: 【 】 浏览:27
Tags:.NET 框架 如何 保证 ViewState 性能 安全性

使用视图状态时,对象必须先序列化,然后再通过回传进行反序列化。



以下情况将不再需要ViewState:


(1)控件未定义服务器端事件(这时的控件事件均为客户端事件且不参加回送的);


(2)控件没有动态的或数据绑定的属性值。





.NET框架为ViewState提供了两种安全机制:


校验机制:设置EnableViewStateMAC=”true”属性来指示.NET框架向ViewState数据中追加一个散列码(该散列码是一种SHA1类型,长度有160位,因此会严重影响执行性能)。在回传事件发生时,将重新建立该散列码,他必须和最初的散列码匹配。通过这种方式,能够有效检验ViewState是否在传送过程中能够被篡改。默认情况下,.NET框架使用SHA1算法来生成ViewState散列代码。此外,也能通过在machine.config文件中设置<machineKey>来选择 MD5 算法,如下所示:<machineKey validation=”MD5″ />。MD5算法的性能要比SHA1算法好一些,不过同样不够安全。



加密机制:使用加密来保护ViewState字段中的实际数据值。首先,必须如上所述设置EnableViewStatMAC=”true”。然后,将machineKey validation类型设置为3DES,即<machineKey validationKey=”AutoGenerate” decryptionKey=”AutoGenerate” validation=”3DES” />,这指示ASP.NET使用3DES加密算法来加密ViewState值。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇英语面试中如何描述自己的缺点和.. 下一篇前几天笔试阿里巴巴,简单的一题居..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: