先介绍一下什么是sql注入,下面是我网上找的定义:
SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别, 所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。
随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
现在知道概念了,来看看怎么预防吧,这是关键,呵呵。
防止sql注入的一个简单方法就是过滤字符串,把和sql相关的字符串和一些特殊字符过滤掉就OK了。
下面是常用的字符串:
String[] SQL_indata
=
{
"
:
"
,
"
;
"
,
"
>
"
,
"
<
"
,
"
--
"
,
"
sp_
"
,
"
xp_
"
,
"
/
"
,
"
dir
"
,
"
cmd
"
,
"
^
"
,
"
(
"
,
"
)
"
,
"
+
"
,
"
$
"
,
"
'
"
,
"
copy
"
,
"
format
"
,
"
and
"
,
"
exec
"
,
"
insert
"
,
"
select
"
,
"
delete
"
,
"
update
"
,
"
count
"
,
"
*
"
,
"
%
"
,
"
chr
"
,
"
mid
"
,
"
master
"
,
"
truncate
"
,
"
char
"
,
"
declare
"
};