Aufgrund der Änderung eines ASP-Programms (das eine SQL-Injection-Schwachstelle aufweist) habe ich kürzlich viele verwandte Präventionsmethoden im Internet gefunden, aber keine davon war zufriedenstellend. Deshalb habe ich einige der Methoden im Internet umfassend verbessert und dies geschrieben ASP-Funktion. Als Referenz.
Hier ein Zitat:
Funktion SafeRequest(ParaName)
Dimmen Sie ParaValue
ParaValue=Anfrage(ParaName)
wenn IsNumeric(ParaValue) = True dann
SafeRequest=ParaValue
Exit-Funktion
elseIf Instr(LCase(ParaValue),"select ") > 0 oder Instr(LCase(ParaValue),"insert ") > 0 oder Instr(LCase(ParaValue),"delete from") > 0 oder Instr(LCase(ParaValue) ,"count(") > 0 oder Instr(LCase(ParaValue),"drop table") > 0 oder Instr(LCase(ParaValue),"update ") > 0 oder Instr(LCase(ParaValue),"truncate ") > 0 oder Instr(LCase(ParaValue),"asc(") > 0 oder Instr(LCase(ParaValue),"mid(") > 0 oder Instr(LCase(ParaValue),"char(") > 0 oder Instr(LCase (ParaValue),"xp_cmdshell") > 0 oder Instr(LCase(ParaValue),"exec master") > 0 oder Instr(LCase(ParaValue),"net localgroup Administrators") > 0 oder Instr(LCase(ParaValue)," und ") > 0 oder Instr(LCase(ParaValue),"net user") > 0 oder Instr(LCase(ParaValue)," oder ") > 0 dann
Response.Write „<script language='javascript'>“
Response.Write "alert('Illegal request!');" 'SQL-Injection-Angriffsaufforderungsmeldung gefunden
Response.Write "location.href='http://blog.downcodes.com/';" Umleitungs-URL für SQL-Injection-Angriff gefunden
Response.Write „<script>“
Antwort.Ende
anders
SafeRequest=ParaValue
Ende wenn
Die Endfunktion
ersetzt Ihre Anfrage durch die SafeRequest-Funktion