欢迎来到天天文库
浏览记录
ID:25637966
大小:536.50 KB
页数:32页
时间:2018-11-21
《构建安全的数据访问.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、构建安全的数据访问更新日期:2004年04月12日本页内容本模块内容目标适用范围如何使用本模块威胁与对策设计注意事项输入验证SQL注入身份验证授权配置管理敏感数据异常管理构建安全的数据访问组件代码访问安全性注意事项部署注意事项小结其他资源本模块内容数据访问是使用几个可用的ADO.NET数据提供程序之一从ASP.NETWeb应用程序访问数据库的过程。此数据库是应用程序级攻击的主要目标。应用程序级攻击用于利用数据访问代码中的漏洞并获取对数据库未授权的访问。如果所有其他攻击方法都已失效,应用程序的前门(即端口8)将变成攻击者窃取、操纵和破坏数据的可选路径。本模块说明如何构建安全的
2、数据访问代码,以及如何避免常见的漏洞和缺陷。本模块提供了一系列对策和防御技术,您可以在自己的数据访问代码中使用它们来减少与数据访问有关的主要威胁。返回页首目标使用本模块可以实现:•设计、构建和部署安全的数据访问代码。•使用代码访问安全性和基于角色的安全性可以限制未经授权的调用方或代码的访问。•安全地验证用户的身份。•防止SQL注入攻击。•确保数据库连接字符串的安全。•使用加密机制来保护存储在数据库中的数据。•确保通过网络发送到数据库以及从数据库发送的数据的安全。•使用带有salt的哈希值将密码安全地存储在数据库中。•实现安全的异常处理。•了解如何使用代码访问安全性,允许中等
3、信任Web应用程序使用OLEDB、Oracle和ODBC数据提供程序(这些提供程序需要完全信任)。•了解应使用哪些对策来解决常见的数据访问威胁,包括SQL注入、配置数据泄露、敏感的应用程序数据泄露、数据库架构和连接详细信息的泄露、未授权的访问和网络窃听。返回页首适用范围本模块适用于下列产品和技术:•Microsoft®Windows®2000Server和MicrosoftWindowsServer™2003•Microsoft.NETFramework1.1和ASP.NET1.1•MicrosoftSQLServer™返回页首如何使用本模块为了充分理解本模块内容,请先阅读
4、下列模块或与本模块结合起来阅读:•阅读模块2威胁与对策。这将使您更广泛深入地了解Web应用程序所面临的潜在威胁及其对策。•阅读模块4Web应用程序安全设计指南。在本模块中,您将了解构建安全解决方案时所面临的体系结构和设计挑战,以及构建准则。•阅读模块18保证数据库服务器的安全。阅读模块18可了解如何确保数据库服务器的安全。•阅读模块7构建安全的程序集。模块7中构建安全程序集和开发安全托管代码的准则和建议同样应该适用于数据访问代码•使用评估模块。要在产品周期的不同阶段检查数据访问的安全性,请参见下列模块中的“Web服务”部分:模块5安全性体系结构和设计审查、模块21代码审查以
5、及模块22部署审查。•使用检查表。本指南“检查表”部分中的检查表:保护数据访问包括一个便于参考的检查表。可以将此基于任务的检查表用作本模块中各个建议的摘要。请注意,在当前版本的.NETFramework(1.1)中,只有ADO.NETSQLServer数据访问提供程序才支持部分信任调用方,并且可以安全地用在部分信任Web应用程序中。OLEDB、Oracle和ODBCADO.NET数据提供程序需要完全信任。返回页首威胁与对策要构建安全的数据访问代码,需要了解数据访问代码中的威胁是什么、常见漏洞是如何产生的以及如何使用适当的对策来降低风险。数据访问代码面临的主要威胁包括:•SQ
6、L注入•配置数据的泄漏•敏感应用程序数据的泄漏•数据库架构和连接详细信息的泄露•未授权的访问•网络窃听图14.1阐明了这些主要威胁。图14.1数据访问代码面临的威胁和攻击SQL注入SQL注入攻击利用易受攻击的数据访问代码,并允许攻击者在数据库中执行任意命令。如果应用程序使用数据库中不受限制的帐户,由于攻击者可以更自由地执行查询和命令,因此受到的威胁会更大。漏洞使数据访问代码容易受到SQL注入攻击的常见漏洞包括:•弱输入验证•在不使用类型安全的参数时动态构造SQL语句•使用特权过高的数据库登录对策要应对SQL注入攻击,请务必:•限制和净化输入数据。•使用类型安全的SQL参数进
7、行数据访问。这些参数可以与存储过程一起使用,也可以是动态构造的SQL命令字符串。参数执行类型和长度检查,并同时确保注入数据库中的代码被视为文本数据(而非可执行语句)。•使用在数据库中具有有限权限的帐户。理想情况下,只应向数据库中的选定存储过程授予执行权限,且不提供直接的表格访问权限。配置数据泄露数据访问代码所使用的最敏感的配置数据是数据库连接字符串。如果泄漏的连接字符串包括用户名和密码,后果将不堪设想。漏洞下列漏洞会增加与泄漏的配置数据相关的安全风险:•使用SQL身份验证,这要求在连接字符串中指定凭据•代码中嵌入的
此文档下载收益归作者所有