dolito: Sicherheit

Beitrag lesen

Magic Quotes verändern die Eingabedaten für ein einziges generisches Ausgabemedium, ohne die vom Programmierer wirklich verwendeten Medien zu berücksichtigen. Sie sollen dabei helfen, SQL-Injection zu verhindern, setzen aber bei den Eingabedaten an, und das ist die falsche Stelle. Das Maskieren der Daten ist im Prinzip nur zu dem Zeitpunkt sinnvoll, an dem diese Daten in diesen Kontext gebracht werden sollen, also unmittelbar vor dem Versenden. Sind die Daten schon eher maskiert lässt es sich gegebenenfalls nicht mehr richtig mit ihnen arbeiten. ("Blödsinn" != "Blödsinn")

War mir bekannt. Zumindest im Ansatz. Und dennoch verwende ich addslashes() bevor ich Daten in einer Datenbank speichere und stripslashes() bevor ich sie wieder ausgebe. Wenn die Ausgabe dann noch in HTML geschehen soll kommt anschließend noch htmlentities(). (Also gemäß deinen Erläuterungen)

("Blödsinn" != "Blödsinn")

Ist wahr. Aber was hat das mit escapen zu tun? Wenn ich 'Blödsinn' escape, ist das immernoch 'Blödsinn'!
Aus 'Der Code lautet: "addslashes($string);"!' wird z.B.
'Der Code lautet: "addslashes($string);"!'

Ich habe jedoch auch einige Projekte gesehen, die prüfen ob Magic Quotes verfügbar ist und dann, wenn vorhanden, gänzlich auf das Escapen verzichten.

Wie wichtig sind nun addslashes() und der Rest?

mfg dolito