如果你的查询语句是select * from admin where username=''''"&user&"'''' and password=''''"&pwd&"''''"
那么,如果我的用户名是:1'''' or ''''1''''=''''1
那么,你的查询语句将会变成:
select * from admin where username=''''1 or ''''1''''=''''1'''' and password=''''"&pwd&"''''"
这样你的查询语句就通过了,从而就可以进入你的管理界面。
所以防范的时候需要对用户的输入进行检查。特别是一些特殊字符,比如单引号,双引号,分号,逗号,冒号,连接号等进行转换或者过滤。
需要过滤的特殊字符及字符串有:
net user
xp_cmdshell
/add
exec master.dbo.xp_cmdshell
net localgroup administrators
select
count
Asc
char
mid
''''
:
"
insert
delete from
drop table
update
truncate
from
%
js版的防范SQL注入式攻击的两段代码~:
[CODE START]