Avatar

Die Aussage des verlinkten Blogbeitrags ist falsch! (Technics)

by Auge ⌂, Sunday, February 05, 2017, 14:14 (2599 days ago) @ wo2010
edited by Auge, Monday, February 06, 2017, 07:58

Hallo

Die bei Sebastian eingebaute Hilfskonstruktion "htmlspecialchars(<string>,ENT_COMPAT,'ISO-8859-1')" scheint sicherheitstechnisch etwas risikobehaftet zu sein (siehe https://d-mueller.de/blog/htmlspecialchars-richtig-nutzen-fallstricke/, da wird als Konstante ENT_QUOTES empfohlen).

Nur, um das klarzustellen. Das in dem Blogbeitrag skizzierte Fehlerszenario ist Bullshit! Ja, in einem Benutzernamen kann es, wie dort angesagt, ein Hochkomma geben, das einen Datenbankquery platzen lässt. Aber die dargelegte Lösung schießt meilenweit am Ziel vorbei.

Die Funktion htmlspecialchars ist dazu da, Texte für deren Ausgabe als Bestandteil eines HTML-Dokuments aufzubereiten. Sie ist nicht für die Aufbereitung von Datenbankqueries da. Dazu gibt es die Funktionen mysql_real_escape_string (alte Schnittstelle), mysqli_real_escape_string (neue Schnittstelle) bzw. Features der PDO-Schnittstelle [edit](Prepared Statements)[/edit], welche die Daten explizit für die Benutzung im MySQL-Kontext aufbereiten.

Die Lösung aus dem Blogbeitrag entschärft zwar das einfache Anführungszeichen/Hochkomma, andere für MySQL relevante Zeichen aber nicht. Die Lösung wiegt den Leser somit in trügerischer Sicherheit und sorgt zudem dafür, dass betroffene Zeichenketten mit dem maskierten Hochkomma statt im Rohzustand, den sie bei Benutzung der für MySQL gedachten Funktionen hätten, in der Datenbank liegen.

Wenn der Autor das als Lehrbeauftragter an der Hochschule Darmstadt, der er zu sein angibt, heute noch seinen Studenten vermittelt, ist das eine große Sicherheitslücke.

Screenshot vom 05.02.2017, 15:02 Uhr MEZ:

[image]

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!


Complete thread:

 RSS Feed of thread