SQL Server injection ist eine Technik, die Schwachstellen in Ihrer Datenbankabfrage ausnützt, um die SQL-Abfrage anderweitig zu gestalten.
Beispiel:
SQL = "SELECT * FROM kunden WHERE nachname = '" & Request("nachname") & "';"
Wenn Sie die Variable nachname eingeben als: '; DELETE TABLE xxxx; -- dann wird folgender SQL-Befehl erzeugt:
SELECT * FROM kunden WHERE nachname = ''; DELETE TABLE xxxx; --';
= Damit wird die Tabelle xxxx gelöscht!
Wenn Sie als nachname eingeben ' OR 1=1 -- erhalten Sie folgendes:
SELECT * FROM kunden WHERE nachname = '' OR 1=1 --';
= Es werden alle Datensätze aus der Tabelle kunden ausgegeben.
Wenn Sie daher Datenbankabfragen in Ihrer Homepage verwenden, dann wäre es ratsam, die Eingaben in Zukunft vor Manipulation zu schützen!
Man könnte z.B.
- Hochkomma oder Anführungszeichen aus der SQL-Eingabe entfernen:
nachname = replace(nachname,chr(34),"") ' " entfernen
nachname = replace(nachname,"'","") ' ' entfernen
Oder wenn diese doch vorkommen müssen, dann zumindest:
'Wenn 1. Zeichen ein ', dann abschneiden:
if left(nachname,1) = "'" or left(nachname,1) = chr(34) then nachname = mid(nachname,2)
- SQL-Befehle entfernen:
nachname = replace(nachname,INSERT,"") ' SQL Befehl INSERT entfernen
User Comments
Marked helpful 1 time
based on 1 vote.
Deinen Kommentar hinzufügen