ASP.NET应用程序和WebServices安全

[复制链接]
查看500 | 回复0 | 2012-4-1 16:17:47 | 显示全部楼层 |阅读模式
<authentication>元素配置应用程序使用的验证模式。
适当的身份验证模式取决于应用程序或WebServices是如何设计的。默认的Machine.config设置应用跨站点脚本(XSS)攻击窃取。应用程序必须采取充分的预防措施以及适当的输入验证策略来降低此风险。
使用小Cookie超时值
可以使用小超时值限制会话寿命,从而降低窗口遭受Cookie重播攻击的风险。
考虑使用固定的有效期
考虑在<forms>元素上设置slidingExpiration="false",使Cookie的截止日期固定,而不是在每个Web请求之后重置有效期。如果未使用SSL保护Cookie,这一点很重要。
注意.NETFramework1.1中提供此功能。
将SSL用于表单身份验证
可以使用SSL保护凭据和身份验证Cookie。SSL可阻止攻击者捕获用于向应用程序证明您的身份的凭据或表单身份验证Cookie。窃取身份验证Cookie是窃取登录。
设置requireSSL="true"。这将设置Cookie中的Secure属性,该属性可确保不通过HTTP链接将Cookie从浏览器传送到服务器。要求使用HTTPS(SSL)。
注意这是.NETFramework1.1的设置。它采用明确的编程,在基于1.0版本构建的应用程序中设置Cookie的Secure属性。有关详细信息和示例代码,请参阅模块10生成安全的ASP.NET网页和控件。
如果不使用SSL,请设置slidingExpiration="false"
通过将slidingExpiration设置为false,可以将Cookie的超时期限固定为自初始创建Cookie之后的某段时间(以分钟表示)。否则,应该针对每个Web服务器请求更新超时时间。如果Cookie被捕获,它将为攻击者提供足够的时间,使其作为已通过身份验证的用户来访问您的应用程序。
注意在.NETFramework1.1中提供了此项功能。
不要在生产服务器上使用<credentials>元素
可以在XML配置文件中存储用户凭据,以支持快速开发和有限测试。请不要使用实际的最终用户凭据。最终用户凭据不应存储在生产服务器上的配置文件中。生产应用程序应该实现自定义用户凭据存储,例如,在SQLServer数据库中。
配置MachineKey
<machineKey>元素定义了用于加密表单身份验证Cookie的加密算法。此元素也可用于维护加密密钥。有关详细信息,请参阅本模块的计算机密钥部分。
使用唯一的Cookie名称和路径
唯一的name和path属性值。确保名称具有唯一性,可以防止在同一服务器上驻留多个应用程序时出现问题
发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则