防止SQL注入

 
   | |

导读:对数据库驱动的应用程序攻击的一个特定类型是SQL注入。在这种攻击中,入侵者操纵网站基于Web的界面,迫使数据库执行不良SQL代码。本文将介绍如何防御SQL注入攻击。

关键词:数据库 应用程序 SQL注入 恶意SQL代码

 
正在加载数据... 【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 Server安全性时,往往问题正在悄悄出现。有人会在网络中的某个区域悄然进入你已经遗忘或根本不知道的SQL Server系统。
 
Web开发者经常使用自定义代码来实现动态网站功能,但这种代码存在风险,会使服务器带有大量漏洞,尤其是把Web应用程序作为后台数据库交互接口时这一问题将……
 
尽管DAM被大肆炒作,但它仅能对数据安全起到微弱的影响,最终工作需要交由数据库供应商来完成,DAM市场的炒作程度远远超过实际客户的需求及对该市场的预估……
 
本文对几款好用的SQL Server密码破解工具进行了详细的介绍,其中包括了SQLPing3,Cain&Abel,NGSSQLCrack,AppDetective Pro和Advanced SQL Password Recovery。
 
对于数据库补丁管理工作来说,什么样的流程才最佳呢?在本次的Techtarget专家答疑中,我们请到了Michael Cobb专家为我们解答数据库补丁更新的最佳实践方式。
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
登录Email
请输入您的登录Email
密码
下次自动登录