SQL 注入攻击是怎么回事?怎样屏蔽
发布网友
发布时间:2022-04-07 16:41
我来回答
共2个回答
热心网友
时间:2022-04-07 18:11
SQL注入攻击是由于程序没有过滤传入参数,导致程序原来的SQL语句+参数构成新的SQL语句执行了!
例如:
"select
*
from
admin
where
adminname
=
"&username&"
and
adminpass
=
"&userpass
这是一句简单的查询管理员用户名和密码是否正确的语句但是如果username和userpass为1
or
1
=
1
就形成了注入不是管理员也可以进入后台了!
防止SQL攻击的方法就是对传入参数进行过滤,现在网上有很多的通用过滤程序!
推荐使用
SQL通用防注入系统3.2
beta
这个版本是最新的SQL防注入系统!
热心网友
时间:2022-04-07 19:29
比如你写了这样的
if(
'select
count(*)
from
user
where
name='"+TextBox1.Text+"'
and
pwd
='"+TextBox2.Text+"'>0)
{
//sueesee
}
如果人家在TextBox1输入1
or
1=1
')--
SQL就成了
'select
count(*)
from
user
where
name=1
or
1=1'
这样就成立了
你可以用存储过程在屏蔽,或如果你用的是C#,可以用传参数的方法屏蔽