文
_社科研究
212
单文增 房驰
Web 项目中SQL 注入问题与防范方法考究spring framework高危漏洞
摘要:自上个世纪90年代之后,我国的信息技术不断高速发展,各种网站都开始不断出现,基于B/S 模式的架构的网站被广泛的采用,但是现阶段存在着许多该类型的应用程序在设计之处并没有充分考虑数据的校验,因此,在安全性方面埋下了一定的安全隐患。在本文当中,笔者首先分析了SQL 攻击模式,同时对其注入攻击的特征进行了分析,并在此基础之上总结了对应的防范策略。关键词:Web 项目;SQL;注入 ;防范
一、引言
当前阶段随着我国网络的不断发展,网络安全问题不断爆发,逐渐引起了人们的广泛关注,许多专家与学者都对网络安全进行了相关的研究。所谓的网络安全是指整个系统当中的软件与硬件等设备所存储的信息受到一定的保护,不会因为各种原因受到破坏后者更改,网络服务并不会受到干扰,系统得已有效的持续运行。随着IT 技术在社会各界的不断运用,社会各界都迫切要求不断提高网络安全。
根据最新的数据统计显示,,网站安全弱点特别是自动远程攻击如SQL 注入攻击呈逐年上升的状态。此外,根据我国互联网犯罪举报中心的统计数据显示,在现阶段的电子商务行业当中那个SQL 注入攻击已经成为攻击的主要方式,此外根据应用程序的统计数据显示大约存在着92%的应用软件存在着漏洞,会受到黑客的入侵。其中可能受到SQL 攻击的应用程序的数量约为70%。随着电子信息科学技术的不断发展,B/S 模式的网站架构方式已经被广泛的运用,而使用web 语言以及后台数据库进行开发的网站数量不断增加,这就使得SQL 注入攻击的发生概率明显增强,大部分利用SQL 注入攻击的黑客都是采用在数据库当中植入恶意代码的方式进行,这种恶意代码会感染数据库,此外现阶段已经有黑客研制出自动化的工具,这种工具可以利用网站的安全漏洞,自动向服务器注入。
二、SQL 注入攻击1、SQL 注入技术的概念
SQL 注入的概念是来自于英语当中的“SQL Injection Attack”,简称为SIA,当前阶段学术界当中关于SIA 的定义并没有达成共识,但是对于这种攻击方式的描述都大同小异,SQL 注入攻击就是利用SQL 注入技术进行攻击的技术。在部分web
应用程序当中,由于在设计之初并没有充分考虑利用数据校验进行合法性的检验,从而使得其安全性存在着一定的问题,其中最为突出的一个问题就是对SQL的传入语句的参数并没有进行检查与处理。现阶段部分网站与应用程序当中存在着SQL 注入点,这种注入点被称为SQL 注入漏洞。在这种应用程序当中由于允许用户进行查询条件的输入,从而使得黑客可以利用SQL 语法构造出具有歧义 的语句,同时发送到服务器当中,但是服务器并无法验证这种语句的合法性,从而使得攻击者能够进入到数据库当中进行各种数据的查询。
2、SIA 的特性
SQL注入攻击是现阶段黑客常用的攻击手段,在风险方面较高,同时现阶段大部分的防火墙对这种攻击并不能进行有效的方法。现阶段的SIA 主要特征包含以下几个方面的内容:
1)隐蔽性。黑客在利用SQL 注入进行入侵时所采用的端口是正常的HTTP 端口,因此,其在访问数据库时具有合法的身份,这就必然导致大部分的防火墙都无法发现黑客的不法行为,具有极强的安全隐患。
2)广泛性。现阶段大部分的SQL 数据库软件都可能会成为SQL 注入攻击的目标,大部分没有对SQL 语句进行规范的Web 应用程序都有可能受到SQL 注入攻击的目标,因此具有极强的广泛性。
3)攻击方式简单。现阶段网络上具有较多的SQL 注入攻击软件,使用者并不需要较多的专业知识就可以进行SQL 注入进行攻击。
4)危害性强。用户采用SQL 注入进行攻击,黑客一旦攻击成功,则可以对数据库当中的数据进行更改,对整个网站的用户都造成极大的伤害。
三、SIA 的防范方法
现阶段对SQL 注入攻击进行检测的方式可以分为两种,即事前与事后检测,防范模型可以选择SQL 注入攻击自动防范模型。
1、输入验证
数据合法性验证方法有以下几种:1)数据格式有效控制function escape(input)input=replace(input,"'","''")escape=input end function
2)拒绝已知的非法输入function validate_string(input)
know_bad=array ("select","insert","update","dele te","
drop","--","'")validate_string=true
for i=lbound(know_bad) to ubound(known_bad)i f (i n s t r (1,i n p u t ,k n o w n _bad(i),vbtextcompare)<>0)
validate_string =false exit function end if next end function 2、SQL Server 防御
输入验证不是万能的,比如说方法 2 中拒绝了“select”字符串的输入,但攻击者只需要把该字符串改写成“seLecT”等形式就可以避开输入验证,并能正常执行该 SQL 语句。所以更重要的一点是必须考虑 SQLServer 自身安全性问题。在创建数据库构架时应该考虑以下问题:
1)选择数据库联接方式网络库可用性的“Network utility”检验。
2)数据库账号的管理①创建低权限账号;②删除冗余的账号;四、结语
在本文当中笔者结合自己的实际工作经验分析了现阶段SQL 注入攻击的特征,并总结了对应的防范策略,希望能对现阶段我国的网络安全有所帮助。
(作者单位:江西现代职业技术学院)作者简介:单文增(1986~),男,江西现代职业技术学院高级技师,研究方向为计算机软件开发;房驰(1987~),男,江西现代职业技术学院技师,助教,研究方向为教育教学,电子信息方面研究。
参考文献
[1]徐陋,姚国祥.SQL 注入攻击全面预防办法及其应用[J].微计算机信息,2006,09:10-12.
[2]乐德广,李鑫,龚声蓉,郑力新. 新型二阶SQL 注入技术研究[J].通信学报,2015,S1:85-93.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论