注册 登录
编程论坛 ASP技术论坛

防注入问题

willam 发布于 2007-10-10 13:21, 512 次点击

以下这些化码:
<%

' 将此文件包含在公共文件里
' 如:conn.asp里
' <!--#include file="sqlin.asp"-->


'--------定义部份------------------
Dim Fy_Post,Fy_Get,Fy_In,Fy_Inf,Fy_Xh,Fy_db,Fy_dbstr,Kill_IP,WriteSql
'自定义需要过滤的字串,用 "|" 分隔
Fy_In = "'|;|and|(|)|exec|insert|select|delete|update|count|chr|mid|master|truncate|char|declare"

Fy_Inf = split(Fy_In,"|")
'--------POST部份------------------
If Request.Form<>"" Then
For Each Fy_Post In Request.Form
For Fy_Xh=0 To Ubound(Fy_Inf)
If Instr(LCase(Request.Form(Fy_Post)),Fy_Inf(Fy_Xh))<>0 Then
Response.Write "<Script Language=JavaScript>alert('非法参数');</Script>"
Response.End
End If
Next
Next
End If
'----------------------------------


'--------GET部份-------------------
If Request.QueryString<>"" Then
For Each Fy_Get In Request.QueryString
For Fy_Xh=0 To Ubound(Fy_Inf)
If Instr(LCase(Request.QueryString(Fy_Get)),Fy_Inf(Fy_Xh))<>0 Then
Response.Write "<Script Language=JavaScript>alert('非法参数');</Script>"
Response.End
End If
Next
Next
End If
%>

post部分可以正常使用,,但是get部分不能正常用,,根本上是没反应的,不知道是那里出问题了,
谁能帮忙一下

3 回复
#2
willam2007-10-10 17:37
晕,,没人会嘛
#3
天涯听雨2007-10-10 17:38

又来了关于注入的问题,搜索一下,朋友回答此类帖很多

#4
hmhz2007-10-10 18:09
MSSQL数据库吗?

使用这个防注代码

[CODE]
'防止注入开始
dim qs,errc,iii
qs=request.servervariables("query_string")
dim deStr(18)
deStr(0)="net user"
deStr(1)="xp_cmdshell"
deStr(2)="/add"
deStr(3)="exec%20master.dbo.xp_cmdshell"
deStr(4)="net localgroup administrators"
deStr(5)="select"
deStr(6)="count"
deStr(7)="asc"
deStr(8)="char"
deStr(9)="mid"
deStr(10)="'"
deStr(11)=":"
deStr(12)=""""
deStr(13)="insert"
deStr(14)="delete"
deStr(15)="drop"
deStr(16)="truncate"
deStr(17)="from"
deStr(18)="%"
errc=false
for iii= 0 to ubound(deStr)
if instr(qs,deStr(iii))<>0 then
errc=true
end if
next
if errc then
response.redirect "对不起,请不要输入非法参数!"
response.end
end if
'防注入结束
[/CODE]
1