Guter Weg, um zu desinfizieren Eingang in classic asp
Ich das update von alten Projekten bei der Arbeit. Ich habe keine Erfahrung mit classic asp, obwohl ich bin vertraut mit php-scripting.
- Gibt es irgendwelche Funktionen, die ich verwenden sollte?
- Können Sie mir eine gute Funktion für einige grundlegende Schutz?
- Gibt es so etwas wie eine parametrisierte Abfrage in asp?
Dank!
- "Desinfizieren" ist der falsche Weg, um über das problem nachdenkt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, Sie können mit parametrisierten Abfragen in der klassischen ASP - (genauer, klassischen ADO).
Hier ist ein link.
Als Kodierung für die Ausgabe, könnte ich versucht sein, Sie erstellen einen wrapper für die neuesten Microsoft-Anti-XSS library und rufen Sie es mit Server.CreateObject. Ich bin weit von einem Experten auf diese Art der Sache, wie ich verbringen viel mehr Zeit in .Net, so dass ich nur denke, dass das funktionieren würde.
Server.HTMLEncode ist wirklich nicht gut genug, als es nur blacklists ein paar Codierung von Zeichen. Der Anti-XSS library ist viel besser als es whitelists, was akzeptabel ist.
Immer mit Server.HTMLEncode zur Bereinigung von Benutzereingaben.
Zum Beispiel, wenn Sie die Einstellung einer Variablen aus einem Formular-Textfeld:
firstName = Server.HTMLEncode(trim(request.form("Vorname")))
Watch out für SQL-injection. Verketten Sie keine Benutzereingaben in eine SQL-Zeichenfolge und anschließend ausführen. Stattdessen werden immer dann verwendet, parametrisierte Abfragen.
Es gibt eine Reihe von Funktionen, beginnend mit, wie
IsNumber
,IsArray
usw., die von Interesse sein könnten. Auch wenn Sie erwarten, eine ganze Zahl, die Sie nutzen könntenCLng(Request("blabla"))
um es zu bekommen, also wenn es nicht eine ganze Zahl, die CLng-Funktion wird ein Fehler ausgelöst.Einen Weg, es zu tun könnte es sein, fügen Sie einen check-in eine
header.asp
- Datei, durchläuft dieRequest
Objekt suchen für unangemessen Zeichen. Zum Beispiel:Nur eine Funktion, die aufgerufen wird, jedes mal, wenn Sie wollen, um die Ausgabe eines Strings. Es wird Kodieren von html-und Ausgabe als text. E. g. escape html.
Ausgabe:
<img src="https://i.imgur.com/eatOKWw.png">