APP下载

一种轻量级的服务端防SQL注入攻击方法

2019-06-21付熙徐龚希章

盐城工学院学报(自然科学版) 2019年2期
关键词:数据库系统

付熙徐,龚希章

(上海海洋大学 现代信息与教育技术中心,上海 201306)

SQL注入攻击是通过在应用程序输入中插入部分SQL语句,改变应用程序中实际执行的SQL语句,以达到绕开验证、篡改数据、控制被攻击系统之目的的攻击[1-2]。由于目前很多应用系统采用的都是基于关系数据库通过SQL语句操纵数据的模式,因而SQL注入攻击被视为对Web应用威胁最大的攻击方式之一。

阻止注入攻击的方式通常是对输入进行判断,从而阻止非法字符的输入。然而,如果需要判断的攻击字符串过多,就容易消耗过多的资源,尤其当验证工作在需要处理大量信息的服务器上进行时,将严重影响服务器的性能。为此,本文对注入攻击的原理和注入攻击语句进行了分析,针对不同的输入设定了不同的处理方法,最终使得需要判断的攻击字符集达到最小,从而最大限度地减轻服务器的压力。

1 相关工作

1.1 SQL注入攻击

SQL注入攻击的攻击方法是通过非法输入改变系统中应执行的SQL语句。如下面的语句:

select * from user where username=′user′ and password=′123′

其目的是返回用户表中用户名为“user”,且密码为“123”的用户,通常用于系统用户验证。正常输入为合法的用户名和密码,但如果在密码部分输入如下字符串则可以达到跳过密码验证的目的。

1’ or ‘1’=’1

SQL语句加入该字符串后,变成如下形式:

select * from user where username=′user′ and password=′ 1′ or ′1′=′1′

则失去了校验密码的功能。同理,攻击者也可插入SQL语句对数据和数据库结构进行修改和删除,从而对数据和系统造成严重破坏;更有甚者,攻击者可以通过数据库系统执行操作系统命令,给系统造成更严重的威胁[1]。……

登录APP查看全文

猜你喜欢

数据库系统
Smartflower POP 一体式光伏系统
WJ-700无人机系统
ZC系列无人机遥感系统
基于PowerPC+FPGA显示系统
半沸制皂系统(下)
连通与提升系统的最后一块拼图 Audiolab 傲立 M-DAC mini
数据库
数据库
数据库
数据库