包过滤网络防火墙能否阻挡网站SQL注入攻击,为啥?
发布网友
发布时间:2022-04-07 22:04
我来回答
共1个回答
热心网友
时间:2022-04-07 23:33
基本不能&……
sql注入是利用页面的输入框或者地址栏,将特定的语句输入传入后台,并在数据库执行,通过页面返回是否报错等方式窃取数据库管理员信息等的攻击方式。
一般要将传入后台的字符进行转义,去掉select、update等关键字,并将出错信息经过处理后反馈给用户(不要将具体的出错信息告诉用户,因为用户会根据出错信息猜测的)
比如:
例如管理员的账号密码都是admin,那么再比如后台的数据库查询语句是
user=request("user")
passwd=request("passwd")
sql='select admin from adminbate where user='&'''&user&'''&' and passwd='&'''&passwd&'''
那么我使用'or 'a'='a来做用户名密码的话,那么查询就变成了
select admin from adminbate where user=''or 'a'='a' and passwd=''or 'a'='a'
这样的话,根据运算规则,这里一共有4个查询语句,那么查询结果就是 假or真and假or真,先算and 再算or,最终结果为真,这样就可以进到后台了