SQL Injection – Schritt für Schritt

Vier Phasen: normale Abfrage, Manipulation ausprobieren, Ursache verstehen, sichere Variante vergleichen.

1 Normal
2 Manipulation
3 Warum
4 Sicher
(nicht angemeldet) Passwort: lehrer

Mini-Glossar

Datenbank: Eine strukturierte Sammlung von Daten – zum Beispiel eine Tabelle mit Schülernamen, Klassen und Noten.

Datenbankmanagementsystem (DBMS): Das Programm, das die Datenbank verwaltet. Es speichert, sucht und schützt die Daten. Beispiele: MySQL, PostgreSQL, SQLite.

SQL (Structured Query Language): Die Sprache, mit der man dem DBMS Anweisungen gibt – also sagt, welche Daten man sehen, einfügen oder löschen möchte.

Tabelle: Eine geordnete Form, um Daten darzustellen. Zeilen heißen Datensätze, Spalten heißen Felder oder Attribute.

WHERE: Ein Teil eines SQL-Befehls, der eine Bedingung festlegt. Beispiel: „Zeig mir nur die Zeilen, wo der Name gleich alice ist.“

Schülerdaten (Simulation)

Keine echte Datenbank. Alles läuft im Browser. Noten und Kommentare sind standardmäßig verborgen.

Die Tabelle ist nur die Datenbasis. Darauf wenden wir Abfragen an.
IDUsernameKlasseDurchschnitt (Note)Kommentar

Phase 1: Normale Abfrage

1a) Tabelle lesen

Suche dir einen Namen aus der Tabelle. Beispiel: alice.

1b) Abfrage in Worten

„Hole alle Spalten aus students, aber nur die Zeile, wo username gleich alice ist.“

SELECT * FROM students WHERE username = 'alice';

1c) Abfrage ausführen

Aufgaben

  1. Phase 2: Notiere die Eingabe, die alle Zeilen anzeigt.
  2. Schreibe in einem Satz, warum die Eingabe wirkt.
  3. Phase 4: Was ändert sich und warum?
  4. Nenne zwei Schutzmaßnahmen.