Ich bin ein Web-Anwendung Entwickler, der klassische ASP als serverseitige Skript verwendet.Auf der Suche nach einer SQL-Injection-Demo
Ich schütze meine Apps immer vor SQL-Injection, indem ich eine einfache Funktion verwende, um ein einzelnes Apostroph für String-Parameter zu verdoppeln.
Function ForSQL(strString)
ForSQL = Replace(strString, "'", "''")
End Function
Für numerische Parameter verwende ich die CInt, CLng und CDbl Funktionen.
Ich schreibe oft eine verkettete Abfrage; Ich benutze nicht immer gespeicherte Prozeduren und ich validiere nicht immer Benutzereingaben.
Ich möchte Sie fragen, ob mir jemand einen Arbeits Angriff gegen diese Codezeile zeigen:
strSQL = "SELECT Id FROM tUsers WHERE Username='" & _
ForSQL(Left(Request.Form("Username"),20)) & "' AND Password='" & _
ForSQL(Left(Request.Form("Username"),20)) & "'"
Es ist eine Banalität sein könnte, aber ich habe nie eine Art von Angriff, die funktioniert.
Ich fragte eine ähnliche Frage: http://stackoverflow.com/questions/8506574/sql-injection-isnt-replace-good-enough –
http://isc.sans.edu/diary.html?storyid=9397 – HeavenCore