近段時間由於修改一個ASP程序(有SQL注入漏洞),在網上找了很多相關的一些防范辦法,都不近人意,所以我將現在網上的一些方法綜合改良了一下,寫出這個ASP函數,供大家參考。
以下是引用片段:
FunctionSafeRequest(ParaName)
DimParaValue
ParaValue=Request(ParaName)
ifIsNumeric(ParaValue)=Truethen
SafeRequest=ParaValue
exitFunction
elseIfInstr(LCase(ParaValue),"select")>0orInstr(LCase(ParaValue),"insert")>0orInstr(LCase(ParaValue),"deletefrom")>0orInstr(LCase(ParaValue),"count(")>0orInstr(LCase(ParaValue),"droptable")>0orInstr(LCase(ParaValue),"update")>0orInstr(LCase(ParaValue),"truncate")>0orInstr(LCase(ParaValue),"asc(")>0orInstr(LCase(ParaValue),"mid(")>0orInstr(LCase(ParaValue),"char(")>0orInstr(LCase(ParaValue),"xp_cmdshell")>0orInstr(LCase(ParaValue),"execmaster")>0orInstr(LCase(ParaValue),"netlocalgroupadministrators")>0 orInstr(LCase(ParaValue),"and")>0orInstr(LCase(ParaValue),"netuser")>0orInstr(LCase(ParaValue),"or")>0then
Response.Write"<scriptlanguage='Javascript'>"
Response.Write"alert('非法的請求!');" '發現SQL注入攻擊提示信息
Response.Write"location.href='http://dev.yesky.com/';" '發現SQL注入攻擊轉跳網址
Response.Write"<script>"
Response.end
else
SafeRequest=ParaValue
EndIf
Endfunction
使用SafeRequest函數替換你的Request