SQL-Injection

Eine SQL-Injection ist eine Form von Cyberangriff, die auf Datenbanken-verknüpfte Websites und Webanwendungen abzielt. Bei diesen Angriffen wird schlecht konfigurierte Server-Software von Websites und Datenbanken ausgenutzt, um einen Server dazu zu bringen, SQL-Anweisungen zu verarbeiten, die er andernfalls nicht ausführen würde. Diese Angriffe können vertrauliche persönliche und finanzielle Informationen offenlegen, einem Angreifer ermöglichen, in einer Datenbank gespeicherte Informationen zu ändern oder zu löschen, oder anderen unbefugten Zugriff ermöglichen.

Eine Website ist anfällig für eine SQL-Injection, wenn sie Benutzereingaben aus einem Text-Formular akzeptiert und diese als Teil einer SQL-Abfrage einfügt. Statt das Formularfeld mit den erwarteten Informationen auszufüllen etwa einem (Benutzernamen), gibt der Angreifer eine Text-Zeichenfolge ein, die die SQL-Abfrage verändert. Eine hypothetische Abfrage könnte beispielsweise mit SELECT UserID, Name, Password FROM Users WHERE UserID = beginnen, gefolgt von der Eingabe aus einem Formularfeld für die Benutzer-ID. Gibt der Benutzer seine Benutzer-ID ein, funktioniert die Abfrage wie erwartet und ruft seine Informationen ab.

Ein Angreifer fügt unerwarteten Text in eine Abfrageanweisung ein, um sie zu ändern

Wenn der Server jedoch Eingabetext ohne Einschränkungen in die Abfrage einfügt, kann ein Angreifer ihn dazu verwenden, die SQL-Abfrage selbst zu verändern. Gibt jemand statt einer Benutzer-ID den Text 317 OR 1=1 ein, wird die Abfrage zu SELECT UserID, Name, Password FROM Users WHERE UserID = 317 OR 1=1;. Da OR 1=1 immer als wahr ausgewertet wird, setzt es die Benutzer-ID außer Kraft; die Abfrage gibt stattdessen die Benutzer-IDs, Namen und Passwörter aller Einträge in der Tabelle Users zurück. Andere Arten von Code-Injection können einem Angreifer ermöglichen, sich als Administrator einer Website anzumelden, Datensätze oder Tabellen aus einer Datenbank zu löschen oder (in einigen extremen Fällen) Shell-Skripte und anderen Code einzuschleusen und auszuführen.

Ein Website-Administrator kann SQL-Injection-Angriffe verhindern, indem er die Server-Software auf dem neuesten Stand hält. Außerdem ist es wichtig, Datenbankeingaben zu „bereinigen“, indem der Eingabetext eingeschränkt oder nach bestimmten Zeichen gefiltert wird. Website-Administratoren können ihre SQL-Abfragen auch parametrisieren – dabei werden Platzhalter in der Abfrage verwendet, die auf die Benutzereingabe verweisen, anstatt diese direkt in die Abfrage einzufügen.

Aktualisiert March 20, 2023 von Brian P.

quizTesten Sie Ihr Wissen

What defines the logical structure of an XML or HTML document?

A
PDF
0%
B
PSD
0%
C
DMG
0%
D
DOM
0%
Correct! Incorrect!     View the DOM definition.
More Quizzes →

Das Tech Terms Computer-Lexikon

Die Definition von SQL-Injection auf dieser Seite wurde von den Autoren von TechTerms.com verfasst. Wenn Sie auf diese Seite verweisen oder diese Definition zitieren möchten, verwenden Sie bitte die grüne Zitierleiste direkt unterhalb der Definition.

Unser Ziel ist es, Computerbegriffe auf verständliche Weise zu erklären. Wir streben bei jeder veröffentlichten Definition nach Genauigkeit und Einfachheit. Wenn Sie Feedback zu dieser Definition haben oder einen neuen Fachbegriff vorschlagen möchten, kontaktieren Sie uns.

Der Tech Terms Newsletter

Erweitern Sie Ihr technisches Wissen mit unserem täglichen oder wöchentlichen Newsletter! Abonnieren Sie noch heute und erhalten Sie neue Begriffe und Quizze in Ihren Posteingang.

Melden Sie sich für den kostenlosen TechTerms‑Newsletter an

Wie oft möchten Sie eine E-Mail erhalten?

Sie können sich jederzeit über die Links in jeder E-Mail abmelden oder Ihre Einstellungen ändern. Fragen? Bitte kontaktieren Sie uns.

Hinweis: Der Newsletter wird auf Englisch versandt.