SQL注入漏洞问题

lzx0460 2004-07-16 01:08:17
我已经过滤了非法的字符
但是还是可以用NBSI猜出数据库中的表名
该怎么解决?
...全文
267 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ntsky 2004-07-16
  • 打赏
  • 举报
回复
'得到字符是否合法
Function Filter_SQL(strData)

Dim strFilter
Dim blnFlag
Dim i

strFilter="',;,--,+,&&,||,(,exec,declare,=,!" '需要过滤的字符,可以自己添加,","是分隔符

blnFlag=0 '过滤标志,如果产生过滤,那么就是真

Dim arrayFilter
arrayFilter=Split(strFilter,",")
For i=0 To UBound(arrayFilter)
If Instr(strData,arrayFilter(i))>0 Then
blnFlag=1
Exit For
End If
Next

If blnFlag=1 Then
Response.Redirect "/wrong.htm"
'当发现有过滤操作时,导向一个预定页面。反正正常访问用不到的连接请求,总不是好事情。
Else
Filter_SQL=strData
End If

End Function
lzx0460 2004-07-16
  • 打赏
  • 举报
回复
wolfeng(王天下)
能不能解答一下?!
bluemoon0001 2004-07-16
  • 打赏
  • 举报
回复
我也想知道啊,高手快说说怎么解决哈。
lzx0460 2004-07-16
  • 打赏
  • 举报
回复
高手!
帮我解决一下
lzx0460 2004-07-16
  • 打赏
  • 举报
回复
Function SafeRequest(ParaName,ParaType)
Dim ParaValue
ParaValue=Request(ParaName)
If ParaType=1 then
If not isNumeric(ParaValue) then
Response.Write "参数不合法"
Response.End()
End if
Else
ParaValue=replace(ParaValue,"'","''")
End if
SafeRequest=ParaValue
End function


就是这段函数
可以过滤非法函数
但是使用了NBSI之后还是可以猜出数据库中的表名
怎么才能即过滤了非法参数
有不让猜出表名呢?
wolfeng 2004-07-16
  • 打赏
  • 举报
回复
如果你只过滤了"'"的话,我想还差点,最好把你的过滤函数贴出来,让大家看看少过滤了什么,如果你穿的的参数只是数字的话,那么用cint就能搞定了,^_^
zhuchengyi520 2004-07-16
  • 打赏
  • 举报
回复
我也遇到相同问题,怎么解决呀
lzx0460 2004-07-16
  • 打赏
  • 举报
回复
就是你的那篇文章里面的函数
我已经调用了
可以防止非法字符
但是使用NBSI还是可以猜出表名
问题出再那里?
该怎么解决?
54NB 2004-07-16
  • 打赏
  • 举报
回复
看看我以前那篇文章,有寫補漏洞的方法
lzx0460 2004-07-16
  • 打赏
  • 举报
回复
楼上的是小竹?
"又是NBSI"何意?
解释下
54NB 2004-07-16
  • 打赏
  • 举报
回复
又是NBSI

28,394

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧