Schreiben Sie ein allgemeines ASP-Anti-Injektionsprogramm, um das Blog aus Ph4Studio auszuwählen
Schreiben Sie ein gemeinsames ASP-Anti-Injektionsprogramm für Keywords
Quelle
Die SQL-Injektion wurde von diesen sogenannten Hackern auf Novizenebene gespielt. Ich fand heraus, dass die meisten Hacker -Intrusionen jetzt auf der SQL -Injektion basieren.
, Leider, wer hat es leicht gemacht, loszulegen? Ok, ich werde nicht mehr über Unsinn sprechen, jetzt fange ich an zu sagen, ob ich ein allgemeines SQL-Anti-Injektionsprogramm schreibe
Allgemeine HTTP -Anfragen sind nichts anderes als zu erhalten und zu veröffentlichen. Solange wir alle Post -Anforderungsparameterinformationen in der Datei filtern, filtern wir also in der Datei
Illegale Zeichen reichen aus, sodass wir den HTTP -Anforderungsinformationsfilter verwenden können, um festzustellen, ob es einem SQL -Injektionsangriff unterliegt.
IIS an ASP.Dll übergebene IIS ist in Form einer Zeichenfolge, wenn sie an Request.queryString -Daten übergeben, Daten,
ASP Parser analysiert die Informationen von Request.queryString und dividiert die Daten in jedem Array nach "&" nach "&".
Lassen Sie sich also wie folgt abfangen
Zunächst definieren wir, dass die Anfrage die folgenden Zeichen nicht enthalten kann
'| und | exec | einfügen | select | löschen | update | count |*|%| chr | MID | Master | Truncate | char | deklariere
Jedes Zeichen wird durch "|" getrennt, und dann beurteilen wir die Anfrage.queryString
Der spezifische Code ist wie folgt
DIMSQL_INJDATA
Sql_injdata = "'| und | exec | einfügen | select | löschen | update | zählen |
Sql_inj = split (sql_injdata, "|")
IFREQUEST.queryString <> "" dann
Foreachsql_getInrequest.queryString
FORSQL_DATA = 0ToUBOUND (SQL_INJ)
ifInStr (Request.queryString (SQL_get), SQL_inj (SQL_DATA))> 0Then
Antwort.
Antwort.end
Endif
nächste
Nächste
Endif
Auf diese Weise implementieren wir das Abfangen der Injektion der Get -Anfrage, müssen aber auch die Post -Anfrage filtern, damit wir die Anfrage weiterhin berücksichtigen müssen. Der Code ist wie folgt
IFREQUEST.FORM <> "" Dann
Foreachsql_postinRequest.form
FORSQL_DATA = 0ToUBOUND (SQL_INJ)
ifInStr (Request.form (SQL_POST), SQL_INJ (SQL_DATA))> 0Then
Response.write "<scriptLuage = ****> alert ('Tianxia Movie Alliance SQL Universal Anti-Injection System fordert ↓ nnPlease keine illegalen Zeichen in die Parameter und versuchen, zu injizieren! Nnhttp: //www.521movie.com');
Antwort.end
Endif
nächste
nächste
Endif
OK, der Job ist erledigt, wir haben Informationsabfangen von GET und Postanfragen implementiert. Sie müssen diese Seite nur verweisen, bevor Sie die Datenbankdatei wie Conn.asp öffnen. Entwickeln Sie Ihr Programm weiterhin mit Zuversicht und müssen Sie nicht berücksichtigen, ob es immer noch durch SQL -Injektion angegriffen wird. Ist es nicht?