Grundlagen der Informationssicherheit

Warum gelten Prepared Statements mit Platzhaltern (parametrisierte Abfragen) als grundlegendere Gegenmaßnahme gegen SQL-Injection als das Entfernen gefährlicher Zeichen aus der Eingabe?

  1. AWeil die Eingabe verschlüsselt an die Datenbank übergeben wird, sodass Angreifer sie nicht lesen können
  2. BWeil der Browser die Art der eingegebenen Zeichen prüft, sodass schädliche Zeichenketten den Server nie erreichen
  3. CWeil zuerst die Struktur der SQL-Anweisung festgelegt wird und die Eingabe danach nur als Wert übergeben wird, sodass sie, gleich welche Zeichen sie enthält, nie als Teil des Befehls interpretiert wird
Antwort und Erläuterung anzeigen

Antwort: C. Weil zuerst die Struktur der SQL-Anweisung festgelegt wird und die Eingabe danach nur als Wert übergeben wird, sodass sie, gleich welche Zeichen sie enthält, nie als Teil des Befehls interpretiert wird

Bei einem Prepared Statement wird zuerst eine SQL-Anweisung, deren Werte durch Symbole (Platzhalter) ersetzt sind, etwa „SELECT … WHERE id = ? AND password = ?“, an die Datenbank übergeben, um ihre Struktur festzulegen; danach wird die Eingabe nur als Wert angebunden (Binding). Die Eingabe wird von Anfang bis Ende als Daten behandelt und wird daher auch mit Anführungszeichen nie Teil eines Befehls, etwa eines, der eine Bedingung anfügt. Das Entfernen oder Maskieren (Escaping) gefährlicher Zeichen erfordert, sämtliche Detailregeln jedes Datenbanktyps und jeder Zeichenkodierung lückenlos zu behandeln, und schon eine einzige Lücke lässt den Angriff gelingen. Eingabeprüfungen im Browser lassen sich umgehen, wenn der Angreifer Anfragen direkt ohne Browser sendet; sie dienen dem Komfort und sind keine Sicherheitsmaßnahme. Zusätzlich hält es den Schaden klein, dem Konto, mit dem sich die Anwendung mit der Datenbank verbindet, nur minimale Rechte zu geben.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Informationssicherheit

  1. Eine Webanwendung für ein Forum hatte eine Schwachstelle, durch die Skripte in von Nutzern geposteten Texten in den Browsern anderer Besucher ausgeführt wurden. Welche Kombination aus Name dieser Schwachstelle und grundlegender Gegenmaßnahme ist richtig?
  2. Eine Webanwendung hat eine Schwachstelle: Öffnet ein angemeldeter Nutzer eine vom Angreifer präparierte Fallenseite, sendet sein Browser vom Nutzer nicht beabsichtigte Anfragen an die legitime Website, etwa Überweisungen oder Einstellungsänderungen. Welche Gegenmaßnahme ist angemessen?
  3. Eine Webanwendung liest und zeigt eine Datei an, indem sie einen über einen URL-Parameter angegebenen Dateinamen an den Namen ihres öffentlichen Ordners anhängt. Wird als Dateiname ein Wert mit ../ angegeben, lassen sich Konfigurationsdateien und andere Dateien außerhalb des öffentlichen Ordners lesen. Welche Kombination aus Name des Angriffs und Gegenmaßnahme ist richtig?
  4. Verwendet eine Webanwendung vor und nach der Anmeldung weiterhin dieselbe Sitzungs-ID, kann ein Angreifer den Nutzer dazu bringen, eine vom Angreifer vorbereitete Sitzungs-ID zu verwenden, und sich nach der Anmeldung des Nutzers mit dieser ID als dieser ausgeben. Was ist die angemessenste Gegenmaßnahme gegen diesen Angriff?
  5. Welche Aussage beschreibt einen DDoS-Angriff richtig?