SQL注入攻击对企业安全有很大的潜在威胁。一旦这种攻击成功,黑客就可以利用这种攻击来危害你的网络并访问你的数据,甚至控制你的电脑。
什么是SQL注入?
SQL注入的原理很简单。当应用程序将客户数据作为输入时,那些怀有恶意的人将有机会注入故意编写的数据,这将导致输入行为成为SQL查询的一部分。
SQL注入是在Web表单提交或输入的查询字符串中插入SQL命令,用于域名或页面请求,最后欺骗服务器执行恶意的SQL命令。例如,许多以前的视频网站泄露VIP会员密码大多是通过在网页表单中提交查询字符,这种表单特别容易受到SQL注入攻击。
当应用程序使用input构造动态sql语句访问数据库时,就会发生sql注入攻击。如果代码使用作为包含未筛选用户输入的字符串传递的存储过程,也会发生Sql注入。Sql注入可能导致攻击者使用应用程序登录来执行数据库中的命令。如果应用程序使用特权太高的帐户来连接数据库,这个问题会变得很严重。在某些表单中,用户输入的内容直接用于构造(或影响)动态sql命令,或者作为存储过程的输入参数,这些表单特别容易受到sql注入攻击。但是很多网站程序在编写时,没有对用户输入的合法性进行判断或者对程序中的变量处理不当,使得应用程序存在安全隐患。这样用户就可以提交一段数据库查询代码,获取一些敏感信息或者根据程序返回的结果控制整个服务器,于是就出现了sql注入。
黑客OR条件已成功注入验证过程。更糟糕的是,条件' 1' = '1 '通常为真,所以这个SQL查询经常导致黑客绕过验证过程。
使用类似“;”的东西符号将另一个查询附加到现有的查询(这个附加的查询也解释了一些现有的查询)。黑客可能会删除您的整个列表,甚至更改列表中的数据。黑客可以用命令控制你的操作系统,从而控制你的电脑,并以此作为攻击其他网络的中间站。总而言之,SQL注入袭击会产生以下后果:
我们如何防止SQL注入袭击?
防微杜渐,最重要的是清理数据,核实数据,不能有丝毫懈怠。清理数据是指通过函数(如mysql的mysql_real_escape_string()函数)运行任何提交的数据,以确保任何具有威胁性的字符,如“'”,不会作为数据输入到sql查询中。
认证是不同的。验证是为了确保数据以许可的方式提交。在最基本的操作中,验证包括确保电子邮件地址包含@符号。验证只接受整数时,只能提供数字,数据长度不能超过最大值。验证通常有两种方式:一种是列出危险或不受欢迎人物的黑名单;二是列出给定的字符,这需要程序员花更多的时间。虽然可以在客户端验证数据,但是黑客也可以修改数据,所以需要用户在服务器端验证所有数据。
但是清洗数据和验证数据远远不能保证用户数据的安全。这里有十种方法可以帮助你预防或减缓SQL注入病毒的攻击:
1.不要相信任何人:所有用户提交的所有数据都被假定是危险的,所有数据都经过验证。
2.如果没有必要,就不要使用动态SQL:包括使用准备好的语句、参数化查询或保存的流程。
3.更新和补丁:一般程序和数据库都存在黑客可以被SQL注入利用的漏洞,所以使用程序补丁和更新是非常有必要的。
4.防火墙:无论是基于软件还是设备,我们都可以考虑使用Web应用防火墙(WAF)来过滤恶意数据。好的防火墙有一套完整的默认规则,随时添加新规则都很容易。WAF可以在新漏洞的相应补丁发布之前,为用户提供有效的安全保护。
5.减少攻击接口:及时处理数据库的函数,避免被黑客利用。比如xp_cmdshell扩展了保存在MS SQL中的进程,使得Windows命令窗口激增,同时也传递了一个字符串用于执行,这无疑对黑客是有利的。由xp_cmdshell扩展的Windows进程具有与SQL Server服务帐户相同的优先级安全权限。
6.使用适当的权限:除非万不得已,否则不要在使用管理员级权限时连接到数据库。使用有限的账号权限有利于数据安全,还可以限制黑客的权限。
7.隐私:假设你的应用不安全,会用加密操作或者哈希密码等机密数据,包括连接字符串,做相应的调整。
8.不要透露太多信息:黑客可以从错误消息中读取很多关于数据库架构的信息,所以要确保这些错误消息中显示的信息尽可能少。使用RemoteOnly CustomErrors模式在本地计算机上显示冗长的错误信息,这样外部黑客的坏操作只能接收到不可操作的错误信息。
9.别忘了最基本的原则:经常更改应用程序帐户的密码。虽然这是常识,但在现实生活中,很多人的密码很难几个月甚至几年换一次。
10.**更好的软件:在购买软件之前,让代码编写人员检查代码并修复客户应用程序中的安全漏洞。
注:本文由黑客联盟整理编辑,转载请注明来源地址:举例讲解SQL注入及防御方法(网赌专业追款不收前期)http://www.556z.cn/hkzk/669.html
版权声明:本文内容来源于互联网,由站长整理发布,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。