Harlequin: Sicherheit: MySql-Injection und Zugriff "von aussen"

Beitrag lesen

Yerf!

Wenn ich einer Variablen einen Wert zuweise wie
$variable = "Hallo \n hier bin ich";
ist der Backslash sichtbar. Bei
echo $variable;
dagegen nicht. Warum ist klar. Als Anfänger wende ich dieses Prinzip aber auch auf mysql an, weils logisch erscheint. Demnach erwarte ich, dass in der DB - sichtbar - die Backslashes stehen, also "Hallo \n hier bin ich". In der Erklärung zu mysql_real_escape_string steht es genau so: ...wird mit einem Backslash versehen.

Der "Fehler" dabei ist nur die Zuordnung zwischen den 2 Beispielen. Das was mysql_real_escape_string ausgibt enthält die Backslashes, man sieht sie wenn man sichd as Statement das zusammengebaut wird vor der Ausführung per echo anzeigen lässt. Dies ist das vergleichbare Gegenstück zu deiner Codezeile mit \n.

Das was in der Datenbank steht ist vergleichbar mit der Ausgabe von Echo, dort ist der Backslash nicht mehr sichtbar.

Gruß,

Harlequin

--
RIP --- XHTML 2
nur die Besten sterben jung