网站地图    收藏   

主页 > 后端 > 网站安全 >

确保ASP.NET应用程序和Web Services安全之计算机密钥

来源:自学PHP网    时间:2015-04-17 14:46 作者: 阅读:

[导读] machineKey 元素用于指定保护表单身份验证 Cookie 和页面级视图状态所使用的加密密钥、验证密钥和算法。以下代码示例显示了 Machine.config 中的默认设置:machineKey validationKey=AutoGenerate,Iso...

 

<machineKey> 元素用于指定保护表单身份验证 Cookie 和页面级视图状态所使用的加密密钥、验证密钥和算法。以下代码示例显示了 Machine.config 中的默认设置:

<machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="SHA1"/>

在配置 <machineKey> 时应考虑以下建议:

 

对多个应用程序使用唯一的加密密钥

设置 validation="SHA1"

手动为 Web 场生成密钥

对多个应用程序使用唯一的加密密钥

 

如果在一个 Web 服务器上驻留多个应用程序,应该对计算机上的每个应用程序使用唯一的密钥,而不是对所有应用程序使用一个密钥。这样可以避免在驻留环境中,一个应用程序可以欺骗视图状态或加密的表单身份验证 Cookie。

还应使用 IsolateApps 设置。这是 .NET Framework 1.1 中的新设置,用于指示 ASP.NET 自动生成加密密钥,并使每个应用程序的密钥是唯一的。

设置 validation="SHA1"

validation 属性指定页面级视图状态的完整性检查所使用的算法。可能的值为“SHA1”、“MD5”和“3DES”。

如果在 <forms> 元素上使用了 protection="All",将对表单身份验证 Cookie 进行加密,同时还可以确保完整性。无论 validation 属性如何设置,表单身份验证均使用 TripleDES (3DES) 为 Cookie 加密。

注意:表单身份验证 Cookie 加密与 validationkey 设置无关,该密钥基于 decryptionKey 属性。

如果在 <machineKey> 上设置了 validation="SHA1",将使用 SHA1 算法检查页面级视图状态的完整性,同时假定 <pages> 元素配置为视图状态 MAC。有关详细信息,请参阅本模块前面的视图状态

也可以将 validation 属性设置为 MD5。应该使用 SHA1,因为此算法生成的哈希值比 MD5 要大,因此更安全。

如果在 <machineKey> 上设置了 validation="3DES",将使用 3DES 算法为页面级视图状态加密(同时还检查完整性),即使 <pages> 元素配置为视图状态 MAC。

手动为 Web 场生成密钥

在 Web 场中,必须设置明确的密钥值,并在 Web 场中的所有计算机上使用相同的密钥值

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论