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

Beitrag lesen

Hallo dedlfix,

.., dass es nur darum geht, bei einem Mischen von Code mit Daten zu Transportzwecken, die Daten eindeutig zu kennzeichnen/erkennen.

Bei allem Respekt, das wird so (verständlich für einen Anfänger) nirgends erklärt. Dieser Satz von Dir klärt dagegen alles, eben in einem Satz!
Das habe ich verstanden. Nämlich, dass die Daten für mysql_query() maskiert werden, um die Ausführung von eventuellem Code zu verhindern. Das leuchtet ein.
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. Das die Backslashes nicht mit gespeichert werden, hat nichts mit Kontextwechsel zu tun, sondern mit der Funktionsweise von mysql, bzw. mysql_real_escape_string.

Ich habe es schonmal geschrieben, bevor ich hier poste, suche ich die Antwort im Web, meist über google oder über einen meiner unzähligen Bookmarks auf php.net, PHP für Dich, usw. Wenn ich da aber nix finde, DANN poste ich hier...und erwarte Hilfe, die ich meist auch bekomme und wofür dieses Forum wohl auch gedacht ist. Ein "Lies dir nochmal..." oder "Lies zuerst mal..." hilft mir eigentlich nie, weil ich dort sicher schon gewesen bin, aber nichts fand oder es nicht verstanden habe.

Gruss und abermals Dank
Thorsten