TechTarget中国网站推荐
您现在的位置:TT安全 > 数据库安全 > 防止SQL注入

防止SQL注入

2008-7-16  选择字号:  | |
打印本文章
【TechTarget中国原创】您机构开发的、用来强化动态网站功能的自定义代码存在在网站服务其中开放重大漏洞的潜在可能。当你正在使用Web应用程序向后端数据库提供界面时,这些漏洞是特别危险的。对数据库驱动的应用程序攻击的一个特定类型是SQL注入。在这种攻击中,入侵者操纵网站基于Web的界面,迫使数据库执行不良SQL代码……

【TechTarget中国原创】负责公共易访问的互联网服务器的安全的专业技术人员,常常(理直气壮地)关注维护从厂商那里购买的操作系统和服务器软件。确实,这些软件包常常包含重大的安全漏洞,而且对于每一个安全管理员来说,确保使用厂商的最新安全补丁和修复程序,来修补他们的服务器是义不容辞的。

  然而,这并不是管理者的责任范围。您可能知道,您机构开发的、用来强化动态网站功能的自定义代码存在在网站服务其中开放重大漏洞的潜在可能。当你正在使用Web应用程序向后端数据库提供界面时,这些漏洞是特别危险的。对数据库驱动的应用程序攻击的一个特定类型是SQL注入。在这种攻击中,入侵者操纵网站基于Web的界面,迫使数据库执行不良SQL代码。

  最好通过实例来了解SQL注入攻击。试想一个包裹递送公司建立的简单网站,它向知道与某个包裹相连的追踪号码的任何人,提供递送状态信息。该应用程序可能会简单地向用户要追踪号码,然后使用下面的SQL代码,在数据库表里查找它。

select *
FROM Shipments
where TrackingID=’@tracking’

  这里,@tracking是一个从Web应用程序传递过来的变量。在正常情况下,这个应用程序可能会完全正常地工作。例如,如果用户输入追踪号码1A2123ZC2,相应的查询将是:

select *
FROM Shipments
where TrackingID=’1A2123ZC2’

  理想的情况——用户将仅仅输入一个有效的追踪号码——造成一个有缺陷的假设。怀有恶意的个人用户不太可能这么合作。假设用户输入如下所示的,在追踪号码区域里的字符串:

1A2123ZC2’ or true

  相应的查询将是:

select *
FROM Shipments
where TrackingID=’1A2123ZC2’ or true

  这将有意想不到的结果,可以得到存储在数据库里的所有的追踪信息。现在假设,我们遇到一个更有恶意的用户,输入下面的字符串:

1A2123ZC2’; delete FROM Shipments

  这将导致数据库执行下面的查询:

select *
FROM Shipments
where TrackingID=’1A2123ZC2’; 
delete FROM Shipments

  这将会有明确的不良结果,那就是从数据库中删除所有的追踪信息。

  你可以采取一些步骤,以减少针对您的数据库的SQL注入攻击的可能性:

  • 避免使用单引号标志。 包括您的Web应用程序中的代码,用双引号代替单引号。这将强迫数据库服务器把引号作为一个字符,而不是字符串定界符。
  • 限制那些执行Web应用程序代码的帐户权限。 在上面的例子中,如果该帐户仅有执行预期的行为(从运送表检索记录)的许可,就不可能将其删除。
  • 减少或消除调试信息。当您的服务器发生错误情况时,Web用户不应该查看错误的技术细节。这种类型的信息可以帮助入侵者寻求利用您的数据库结构。
  • 培训您的开发人员。确保在您的机构中,负责开发代码的人员知道这种威胁的严重性,以及他们可以采取的、帮助维护您的服务器的简单步骤。
  • 测试您的Web应用程序。抽查您的开发人员的工作。您可以做一个简单的检查,即把单引号放进发往您的服务器的数据中。如果您收到一个任何形式的错误回应,表明您可能容易受到SQL注入攻击。

  如果您花时间去实施这些简单的步骤,您将在保护您的网络/数据库互动的路上走得很好。


SQL注入攻击
 防止SQL注入
 微软工具应对SQL注入攻击
 新一轮SQl注入攻击敲响警钟
 新SQL注入蠕虫出现
 为什么侧面SQL注入和NULL指示器攻击那么重要
 SQL注入的应对策略能够应对XPath注入吗?
 新SQL注入技术威胁Oracle数据库
 实施自动的SQL注入攻击测试
 自动式SQL注入攻击的新型防御

还没有登录? 阅读全文请先登录或注册
用户名:(请填写您的E-mail做为登录账号)
  • 获取最新的IT业界资讯、市场动态、行业趋势等独家原创内容。
  • 分享国内外技术专业人士提供的技巧经验。
  • 利用专注IT的技术资源中心,不断更新专业知识。
  • 享受白皮书、Webcast等系列特色增值服务。
  • 免费参加TT中国举办的各种会员活动。
  • 更多的精彩服务,在不断开发中……
用户名:(请填写您的E-mail)
密 码:
 永久登录
请输入您的登录email:
管理好密码文件,对于控制授权用户从远端或本机登录Oracle数据库系统,执行数据库管理工作,具有重要的意义……
周三,IBM发布了更新,修补DB2 数据库管理系统(DBMS)中的至少10个漏洞。IBM的修复解决DB29.1、9.5和DB2 Universal Database8.1和8.2版本。DBMS受到SQL注入攻击漏洞影响……
虽然公共机构可以免于受到华尔街的冲击,但是,这并不能消除约束他们的规则要求。他们遵守规则的压力仅仅来自于不同的来源……
近来,网络上出现史上最强大的互联网漏洞——DNS缓存漏洞,此漏洞直指我们应用中互联网脆弱的安全系统,而安全性差的根源在于设计缺陷。那么它的攻击原理是什么呢?
根据在全球范围内公开进行的一项互联网服务器安全为内容的调查显示,超过百分之十的互联网域名系统(DNS)服务器仍存在安全隐患,时刻有被遭受攻击可能……
跨站脚本攻击XSS是Web安全中最常见的漏洞,本文将向读者介绍一种检测脚本攻击漏洞的自动化工具——XSSDetect……
在使用电脑的过程中,我们无时无刻不在与密码打交道。如果自己设置的密码被别人猜到或破译,那么则会重要资料、个人隐私被泄露。因此安全密码的管理是与每个人都相关的一件大事。本专题中将用实例介绍如何安全密码的创建、管理和破解。
最好的入侵检测系统(IDS)是免费的、开源的Snort工具。它拥有大量的用户,而且有商业公司Sourcefire的支持,使得Snort成为受到欢迎的入侵检测系统工具。这个工具本身是免费的。它所需要的是一些在上面运行的硬件以及安装、配置和维护的时间。
虽然改进的过程很艰辛,但是Microsoft SQL Server 2008比2005和2000更安全了。保护业务的关键是数据库安全。组织、企业、互联网、以及应用程序对数据库的依赖程度从来没有如此之高。毕竟,现在有什么数据不是存储在你的后端数据库中呢!
最新更新
专家答疑
技巧
Puneet Mehta
虚拟局域网(VLAN)是在OSI模式的第二层操作的。尽管如此。虚拟局域网经常配置为直接指向IP网络,或者子网,子网看起来是包含在第三层中。两种方式保证VLAN安全……
Ed Skoudis
问:威胁建模是有用的防御机制吗?真的可以和黑客一样思考吗? 答:目前,威胁建模对安全专家来说是一种难以置信的有用的工具……
Joel Dubin
问:我是高级信息安全主管。我的公司想要使用一位员工的社会安全号码的最后四位数,妈妈的小名和出生的城市作为一个程序的密码认证系统。这样的密码系统安全吗?