浅析面向SQL数据库注入攻击的Java Web防御措施
2016-03-14◆徐茂
◆徐 茂
(莱芜市公安消防支队 山东 271100)
浅析面向SQL数据库注入攻击的Java Web防御措施
◆徐 茂
(莱芜市公安消防支队 山东 271100)
随着信息时代的发展以及互联网计算机技术的普及,网络安全逐渐成为了社会关注的重点。现阶段,各行各业的信息化建设使得网络系统管理的地位日益提升,与企业相关的各种数据信息也被储存于强大的网络数据库中。然而这些数据库往往是网络黑客的入侵目标,由此可见信息安全受到了较大的威胁。鉴于此,本文主要分析常见的网络攻击形式,即向SQL数据库中注入攻击,探讨Java Web应用过程中防御措施。
SQL数据库;攻击;Java Web应用;防御措施
0 引言
现阶段,大部分的网页存在较大的SQL数据库注入漏洞。网络黑客以数据库的漏洞为突破口,凭借着自身拥有的较高计算机技术,通过网络服务器侵入到管理员的服务区域内,从而偷取相关的重要信息数据。在我国,这种网络入侵,盗取资料信息的案例时有发生,严重威胁到了网络信息的安全,违背了相关的法律法规和社会道德。因此,本文对Java Web应用过程中防御措施的探讨具有重要价值。
1 注入攻击机制及SQL结构属性分析
1.1 SQL数据库注入攻击后系统的内部变化
在数据库管理平台系统内存在客户终端和数据终端,很多网络黑客通过客户终端输入一些违反规定的SQL语句,当正常的SQL语句遇到违规语句时会产生一定的混乱,从而降低了数据库系统信息的安全,由此便导致了SQL数据库注入攻击。当SQL数据库注入攻击以后,数据库信息便面临了较大的安全隐患,重要的数据信息很有可能被盗取。当攻击者的目标不是数据库中的信息数据时,很有可能威胁到系统服务器的安全,从而造成更大的损失[1]。
当网络黑客入侵到管理者区域内以后,便取得了一定的网络信息控制权,从而会安装一些威胁信息安全的木马病毒,使得众多的网民信息安全受到威胁。可见,SQL数据库注入攻击以后,其危害领域与范围是较大的,后果不堪设想。
1.2 结构化查询语言的特点
SQL是中文“结构化查询语言”的英文简称,这种语言模式可以为相关的数据库管理编写出一个功能较全的程序化软件,其表达转译的过程主要通过SQL语句完成。SQL数据库语言的功能主要表现在实现数据库之间的信息交流,在接收指令和执行操作的过程中主要以SQL语句指令为标准,从而保证在数据库管理平台发出指令时,数据系统作出相应的反应[2]。
SQL数据库语言与关系型数据库密切相关,这也是一般关系型数据库均使用SQL数据库语言的重要原因。大部分关系型数据库在使用SQL语句时,可以得到较好的程序表达,其在表达过程中受到其它数据库的影响较小。
2 针对性措施分析
2.1 加强客户端与服务端双向检测力度
一般情况下,在检测数据库的过程中,比较注重客户端方面的检测,服务端检测力度不够,相关的保护程序不完善。由此增加了网络黑客侵入的机会,使得SQL数据库注入攻击的可能性增大。因此,为了降低网络攻击的概率,需要在客户端和服务端分别进行检测[3]。
客户检测过程中要注重对攻击可能性的划分以及攻击危害性的规划,对于不同程度的网络攻击,要控制好网络流量,保证服务器的承载处于标准范围内。此外,随着时代的发展以及现代技术的进步,网络黑客的技术水平也越来越高,在实施网络攻击的过程中,会选择避开客户端直接攻击系统服务器。由此可见,加强服务端检测力度是十分必要的。
服务器在检测过程中要对信息保持敏感的嗅觉,即任何形式的可疑信息均要实施抵制,并且进行强制性的停止信息操作。为了保证服务端与客户端的统一性,在服务端出现抵制其信息操作时,要将信息错误的提醒传输到客户端,从而保证可以及时的应对攻击[4]。
2.2 完善数据库基本配置,实施定期更新,保证数据安全
为了保证数据的安全性,需要完善数据库的基本配置,定期更新数据库,并实施最小权利法则标准。软件安装过程中会存在一些账号信息和相关的权限提醒,为了使得数据库的基本配置,即相关软件的安全性,需要及时的将与账户信息安全有关的信息删除掉,从而避免形成网络黑客注入漏洞。
当数据库出现攻击现象以后,系统便感知了内部存在的漏洞,为了避免网络攻击的连发性,官方会提供一些数据库更新补丁,从而填补系统漏洞。数据相关系统在接收更新提醒以后,要进行及时的更新操作,从而提高数据安全。为了加强对系统数据安全性的防范,官方系统可以实施定期更新机制,从而防患于未然。
Java Web应用程序与数据库之间只存在特定的账户权限,通过这种唯一性的设置可以保证在用户完成相关操作以后,网络黑客不会借助其它形式的软件进行再次登录,从而可以保证数据库不会被其它恶意软件所攻击[5]。
2.3 通过对数据库实施编码字符防范,保证内部深层次加护效果
编码字符防范可以实现对数据库的深层次防护,编码字符防范的实质是指在Java Web应用程序实施操作的过程中只能识别出自身设置的编码,在输送过程中会通过既定的编码形成一定的系统识别语句。在实现数据输入的过程中,系统会将数据以编码函数的形式完成到另外一组预定编码字符中的输入,从而不给网络黑客留下追踪编码的机会。
在实施编码字符防范的过程中存在一个较大的问题,即网络黑客的攻击手段也是通过一定的代码破译形式。虽然编码字符在系统实施编制的过程中会表现出一定的复杂性,但是与攻击手段相比,显然还存在一定的差距。函数编码虽然可以实现对数据原有编码的替换,增加编码破译的难度,但是在系统设计编码字符防范的过程中,依然要注意加强编码函数的复杂性,从而增加攻击者入侵的难度[6]。
2.4 建立SQL数据库注入防范系统,确保对接受信息的准确判断
为了加强对SQL数据库的保护,可以选择在客户端与服务端中间部位设置一个区别于一般防范系统的数据库注入防范系统,即SQL数据库注入防范系统是独立于服务器系统本身的特殊系统。SQL数据库注入防范系统的设置目标主要是了抵制病毒的二次入侵,在数据完成传输之前将其分解。
一般情况下,网络系统在完成数据传输的过程中需要遵循一般的HTTP协议,协议内设置了基本的数据传输请求的格式以及服务器发生响应的对应标准,即只有在符合HTTP协议的基础上,网络系统才会完成传输工作。SQL数据库注入防范系统的功能主要为了分析从客户端传入的信息规范性,将HTTP协议内的传输报告内容承包,并加以分析和处理,从而保证系统响应的安全性。
在实现数据传输的过程SQL数据库注入防范系统中包含了解析系统、解码器和语句判断系统,即首先接受到客户端传入的信息请求,将这些信息送入解析系统分析,解析系统主要是对信息的深层分析,从而得到用户的输入部分。在得到用户输入信息以后,将其输送到解码器内,解码器的功能主要是实现不同编码字符的统一转化,即使得输入信息转化成统一的语句,也可以称之为标准语句,这些标准语句的转化一般可以与客户输入信息保持一致[7]。
将标准语句送入到判断系统执行语句的判断,在判断系统没有显示异常时,可以将其运输到Java Web应用服务器中运行。当判断系统出现异常提醒时,说明语句信息存在问题,此时需要及时的抵制,避免其进入到Java Web应用服务器内部。由此可见,SQL数据库注入防范系统可以实现对用户输入信息的精准判断,从而进一步提升数据库安全,防止SQL数据库注入攻击。
3 结论
综上所述,通过分析SQL数据库注入攻击的基本特点以及SQL数据库被攻击以后对数据信息形成的威胁,说明了加强Java Web应用程序的防御功能的必要性。SQL数据库的安全与广大网民信息安全密切相关,因此要提高数据的安全性,加强客户端与服务端的共同检测,完善SQL数据库注入防范系统,同时还要加大编码字符防范的复杂性,从而减少SQL数据库的注入漏洞。
[1]吴为团,郑海燕,张锐丽.基于Web应用程序的SQL注入攻击和防范[A].中国通信学会、江西省通信管理局.第十一届中国通信学会学术年会论文集[C].中国通信学会、江西省通信管理局,2015.
[2]张卓.SQL注入攻击技术及防范措施研究[D].上海交通大学,2007.
[3]王剑.基于S2S框架的防汛应急预警系统设计与实现[D].华中科技大学,2013.
[4]隋亮.基于渗透测试的SQL注入漏洞检测与防范[D].东华大学,2014.
[5]赵阳.基于SQL注入的数据安全测评技术研究[D].沈阳工业大学,2012.
[6]杨樱.Web安全与入侵检测技术的研究[D].河南理工大学,2009.
[7]卢俊.SQL注入与XSS攻击防范方法的研究以及防范模型的设计与实现[D].北京邮电大学,2011.