APP下载

SQL 注入攻击与防范之研究

2020-01-06刘建亮乔兴华

科学技术创新 2020年8期
关键词:攻击者语句网页

刘建亮 乔兴华

(航空工业沈阳飞机工业(集团)有限公司,辽宁 沈阳110000)

信息化时代网络业务开始步入快速发展的时期,给原有的工作模式以及生活节奏带来了巨大的变化以及便利,使信息共享成为了现实。但是,由于网络的虚拟型导致它也格外的脆弱,容易受到各种攻击,给数据以及信息的保存带来了一定的影响。随着人们对网络技术的研究越来越透彻,很多人能够通过远程操作对内网进行网络攻击,进而获取到攻击目标的使用权限,盗取其中的重要文件或者信息。SQL 注入攻击作为一种隐秘、高效的信息盗取技术,成为了黑客广泛使用的一种攻击技术,针对这种现象,应当采取一定的有效措施,保证网络信息的安全性和保密性,净化网络空间。

1 SQL 注入攻击的概念阐述极其特点

1.1 SQL 注入的概念

近年来,SQL 注入攻击成为了网络领域的热门问题,不同的专家对于SQL 注入攻击也有不同的定义。如国外的一位专家将SQL 注入攻击定义成为是一种利用SQL 语言更改网页应用程序的一种操作行为,并通过这种行为获取网页中的各项数据以及信息。但是,不论根据哪一种定义来讲,SQL 注入攻击都属于一种未经许可的网络攻击行为,性质极其恶劣[1]。SQL 注入攻击主要是由于制作网页系统人员工作疏忽而导致的,技术人员并没有在代码编写的过程中检查SQL 语句,也没有将SQL 语言进行参数化处理,这就给网络黑客一定的可乘之机。例如,在生活中我们经常能够遇到的网站会员密码泄露现象,就是由于SQL注入攻击所导致的。

1.2 SQL 注入攻击具有的特点

对于SQL 注入攻击来讲,一般的防火墙是没有任何作用的,它可以直接越过防火墙来获取数据库的使用权限,因此这种攻击与其他攻击技术相比具有不同的特点,主要表现在以下三面:第一,操作难度较低。这种攻击技术所需要的难度较小,目前在网络上拥有大批的SQL 注入攻击工具,只要利用这种道具就可以更改网页系统。如果个别网站存在着SQL 注入漏洞,攻击者则可以直接对目标服务器进行控制。第二,使用较为广泛。SQL 注入漏洞的存在范围较为广泛,因此SQL 注入攻击的使用较为普遍。基于对SQL 注入攻击的研究数据来看,在很多类型的编程语言中都出现了同类型的漏洞,给网页安全带来严重影响。第三,具有极高的危害性。SQL 注入攻击不仅可以盗取网站中的信息,同时还能使攻击者具有操作权,可以随意改写网页内容、更换系统管理员等[2]。

2 SQL 注入攻击操作原理以及检测攻击的方法

2.1 SQL 注入攻击操作原理

SQL 注入攻击能够得以实现的方式主要包括以下两个方面:第一,向应用程序中输入代码,构成动态的SQL 语句,利用SQL 语句来获取目标系统的数据库权限,或者对其进行攻击;第二,当编写的程序代码在进行存储时,同时会将系统没有进行过筛选的用户数据以及信息也存储进数据库,当这些字符串在传递的过程中,也可以对其进行SQL 注入攻击。目前经常使用的攻击方式为对数据库进行直接攻击,利用动态SQL 语句直接攻击数据库。攻击者首先会在系统运行过程时所传递的字符串中插入恶意代码,如果所插入的代码与SQL 语句的运行方式相同,同时还满足系统没有验证信息的要求,那么网页程序就会按照插入代码之后的规则和状态来运行。

2.2 检测SQL 注入攻击的方法

由于SQL 注入攻击无法被防火墙所阻挡,并且隐蔽性极强,与正常的网络访问没有差别,因此必然需要使用人工手段来对SQL 注入攻击进行检测[3]。首先,需要定期查看IIS 日志中的文件信息以及文件数量。ISS 日记所记载的是登录网站系统进行访问时所留下的IP 地址、访问记录、用户信息等,当发生SQL 注入攻击时,攻击者会频繁的访问其中一个页面的文件内容,因此IIS 中的日志数量会持续增加。其次,可以利用数据库的信息来判断是否发生SQL 注入攻击。SQL 注入攻击通常是利用一些软件来进行的,所以在攻击过程中数据库会出现临时的表格,这就是受到SQL 注入攻击的迹象。在这些表格中会有与正常数据不同的结构,并且其中有大量的外来信息,是判断SQL注入攻击方式的有效方法。最后,可以通过检验用户输入的信息和数据来进行判断。系统可以利用正则表达式来进行数据检验,或者限制用户可以输入的字符长度。系统还可以将单引号以及双- 两种符号互换,检测用户是否为正常访问系统的用户[4]。

3 防范SQL 注入攻击的有效措施

3.1 转换、过滤特殊符号,验证用户输入信息

当用户向系统输入字符的过程中,需要对输入内容进行限制,避免出现SQL 注入攻击。在输入过程中,用户不可以输入二进制数据、注释字符以及转系序列等,这些都不是正常输入的内容,通常都是攻击者所需要使用的代码和符号。通过对个别数据和语句的过滤,能够有效防范SQL 注入攻击,降低了恶意脚本的攻击几率,也阻止了缓冲区数据的泄露。另外,同时还应该过滤掉有关于用户信息的数据,使得用户登录网站所查询的内容只能够从文本框中来获取,保证网页信息的安全性。例如,在目前很多网站输入用户登录信息时,都对密码有一定的要求,必须要求拥有数字、英文以及符号,或者要求某一种信息位于前面,个别网站还会限制用户所输入的符号数量。这种要求约束了用户,缩小了用户的权限,避免了其他代码插入的状况,有效的防范了SQL 注入攻击,保护了系统的安全[5]。

3.2 利用参数化查询预防SQL 注入攻击

这种方法是一种最为有效的防范措施,对SQL 注入攻击的防范起到了重要作用,一定程度上保护了用户的隐私以及用户的安全。这一种方法需要在开发系统的过程中所设定的,当设计数据库的系统或者利用链接获取数据库信息时,有个别位置需要进行数值填写。当出现需要填写数据的情况时,就用参数来填写,这种方法就叫做参数化查询。参数化查询能够有效的防止SQL 注入攻击出现,同时还能够提升原本所设定的执行计划可以使用的固定次数,对数据库系统的运行有重要意义,一定程度上降低了数据库的工作压力。当系统中SQL 语句在运行的过程中,就会将参数化查询进行缓存,以达到提高原有的计划执行次数的目的[6]。

4 结论

在以往的生活中,人们需要通过纸质书籍、报纸来获取信息,使得信息的传递出现了一定的延迟。在网络技术的支持下,人们只需要通过浏览网页就能够达到获取信息的目的,给社会的发展带来了新的活力。在信息高速传输的社会环境下,浏览器的网页中存储了大量的数据和信息,而部分负责开发系统的技术人员并不会对这些数据以及信息进行合理化判断,进而导致网页出现了一定的安全隐患,给攻击者留下可以利用SQL 注入来获取这些信息的机会。SQL 注入不仅会造成数据流失,还可能会让攻击者获得网络系统的控制权,改变网络页面中的内容。这就需要网页管理员具有一定的防范意识,对SQL 注入攻击进行有效的防范,防止信息泄露的问题发生。

猜你喜欢

攻击者语句网页
基于贝叶斯博弈的防御资源调配模型研究
基于HTML5与CSS3的网页设计技术研究
重点:语句衔接
正面迎接批判
基于CSS的网页导航栏的设计
基于HTML5静态网页设计
正面迎接批判
基于URL和网页类型的网页信息采集研究
我喜欢
作文语句实录