ich werde es vorrübergehend mit stripslashes lassen, weil es seine Funktion erfüllt.
Aktuell weiß ich auch gar nicht, wie ich dieses magic_quotes deaktiviere.
Das ist der Knackpunkt, wenn du keinen Zugriff auf die PHP-Konfiguration hast, kannst du magic_quotes_gpc nicht einfach ändern.
Es kann aber gut sein, dass es jemand anders ändert, oder bspw. ein Webhoster auf PHP6 updatet.
Was das für Auswirkungen haben kann(mal von der Datenbanksicherheit abgesehen)...hier ein vorstellbares Szenario:
Du hast einen login-geschützten Bereich.
Der User hat dort ein Passwort gewählt, welches ein Zeichen enthält, welches bei magic_quotes_gpc escaped wird.
Also : magic_quotes_gpc ist On, der User loggt sich normal ein.
Dein Hoster updatet nun auf PHP6
magic_quotes_gpc existert nicht mehr, das Passwort wird bei der Eingabe nicht mehr "manipuliert". Ergebnis: Der User kann sich nicht mehr einloggen
Also:
Daten von aussen
in jedem Fall vor jeder weiteren Verarbeitung per stripslashes in die tatsächliche Eingabe überführen, und zwar nach folgendem Schema:
Code:
$echteeingabe=(get_magic_quotes_gpc())
? stripslashes($_REQUEST['variable'])
: $_REQUEST['variable'];
...es sei dann, man hat volle Kontrolle über die Konfiguration der Server, auf denen die Anwendung laufen wird/soll und kann sicherstellen, dass dort
magic_quotes_gpc immer Off sein wird.
Alles andere, was die Sicherheit betrifft, kommt erst danach, denn es kommt darauf an, was du mit dem String machst.
Speicherst du ihn in einer DB, dann behandle ihn bspw. mit mysql_real_escape_string()
Gibst du den String aus, behandle ihn bspw. mit htmlentities() oder strip_tags() , um zu verhindern, dass dort HTML-Code eingeschleust wird.