← SEARCHABLE ARCHIVE
Web · 2026-07-14

Was ist ein SQL-Injection-Angriff?

Wie wird eine Benutzereingabe zu einem SQL-Befehl?

INTERACTIVE READING MODE →

Die in diesem Blog verfassten Artikel wurden mit dem Ziel erstellt, zu unterrichten. Außerdem können die Informationen im Artikel falsch sein, also seien Sie bitte vorsichtig.

Wenn eine Website Benutzereingaben in eine SQL-Anweisung einfügt, kann der Benutzer SQL-Syntax anstelle von Daten eingeben. Diese Sicherheitslücke wird als SQL-Injection bezeichnet.

Ein häufiger SQL-Angriff bezieht sich häufig auf SQL-Injection. Um genau zu sein, sind Angriffe auf Systeme, die SQL verwenden, ein weiter gefasster Begriff, und der repräsentative Eingabeangriff ist SQL-Injection.

Probleme, die auftreten, wenn Zeichenfolgen unverändert kombiniert werden

Nehmen wir an, Sie haben den Anmeldecode wie folgt erstellt:

const sql =
    "SELECT * FROM users WHERE name = '" + userName +
    "' AND password = '" + password + "'";

Wenn normale Eingaben empfangen werden, wird die folgende SQL erstellt.

SELECT * FROM users
WHERE name = 'rose' AND password = '1234';

Wenn jedoch Anführungszeichen und SQL-Operatoren in der Benutzereingabe enthalten sind, kann sich die vom Entwickler beabsichtigte Struktur des Satzes ändern.

' OR 1=1 --
SELECT * FROM users
WHERE name = '' OR 1=1 -- ' AND password = '';

1=1ist immer wahr,--Letzteres kann auskommentiert werden. Zeichenfolgen, die nur als Daten behandelt werden sollten, sind Teil von SQL-Befehlen geworden.

Welchen Schaden verursacht es?

Auch wenn eine SQL-Injection möglich ist, tritt nicht immer der gleiche Schaden auf. Die Ergebnisse variieren je nach Art der von Ihnen ausgeführten Datenbank, Kontoberechtigungen und dem Umfang der Anweisungen, die gleichzeitig ausgeführt werden können.

Dennoch können im Allgemeinen folgende Probleme auftreten:

  • Umgehen Sie Anmeldeprüfungen.
  • Lesen Sie die persönlichen Daten anderer Benutzer.
  • Beiträge oder Kontoinformationen ändern oder löschen.
  • Verwenden Sie Fehlermeldungen, um die Datenbankstruktur zu bestimmen.
  • Wenn die Berechtigungen des Datenbankkontos zu hoch sind, erhöht sich der Schadensumfang.

Eine Front-End-Inspektion allein kann dies nicht verhindern.

Sie können davon ausgehen, dass es sicher ist, da Ihr Browser die Eingabe von Anführungszeichen blockiert. Ein Angreifer kann jedoch eine HTTP-Anfrage direkt an den Server senden, ohne über den Browserbildschirm zu gehen.

Daher sind Eingabelängenbegrenzungen und Bildschirmkontrollen nur Hilfsmittel für die Benutzerfreundlichkeit. Die eigentliche Verteidigung muss auf dem Server erfolgen, auf dem SQL ausgeführt wird.

Die Hauptursache für die SQL-Injection ist kein einzelnes Sonderzeichen. Das grundlegende Problem besteht darin, Benutzerdaten und SQL-Befehle in einem String zu vermischen.