In PHP 5.2.6 werden die magic_quotes_gpc als eingeschaltet angezeigt, obwohl sie tatsächlich abgeschaltet sind. Somit werden einfache und doppelte Anführungszeichen, Backslashes und NULL-Werte nicht automatisch durch vorangestellte Backslashes auskommentiert, obwohl das dem Anwender so angezeigt wird. Hacker können dadurch gefährlichen Code in Eingabeformulare und damit auch in angeschlossene MySQL-Datenbanken einschleusen.
Diese Sicherheitslücke ist gerade deshalb besonders ärgerlich, weil die Magic Quotes als veraltert angesehen werden und von den meisten Entwicklern ohnehin abgeschaltet werden. Stattdessen werden Benutzereingaben meist durch geeignete Sicherheitsabfragen und PHP-Funktionen daraufhin geprüft werden, ob sie potenziell gefährliche Zeichen enthalten, und diese werden dann eigens ausfiltern. PHP stellt dafür verschiedene Funktionen wie htmlspecialschars() und htmlentities() sowie addshlashes() bereit. Doch wer die Magic Quotes eben doch nutzt und sich auf deren Schutzwirkung verlässt, kann ein böses Erwachen erleben.
Ob bei der eigenen PHP-Konfiguration die Magic Quotes aktiviert sind oder nicht, erfährt man, wenn man phpinfo() aufruft (siehe Bild zu dieser Meldung). Oder indem man sich die aktuelle Konfiguration der Magic Quotes mit Hilfe von get_magic_quotes_gpc anzeigen lässt. Die Einstellung für die Magic Quotes kann dann in der php.ini geändert werden, indem man off statt on einträgt.
Das gpc steht übrigens für Get, Post und Cookie. Es werden also Eingaben mit zusätzlichen Backshlashes entschärft, die via Get und POST übermittelt werden oder in Cookies stehen.
Wer PHP 5.2.7 bereits installiert hat, sollte auf 5.2.6 zurückwechseln und auf das nächste Release 5.28 warten.
Ratgeber: Cross-Site Scripting – die Gefahr im Internet
Tipp: Wer bereits einen Blick auf die nächste Generation der Skriptsprache werfen will, kann sich eine neue Alpha-Version von PHP 5.3 herunterladen. Darin sind endlich Namespaces enthalten – wer mit PHP objektorientiert programmiert darf sich also freuen. Außerdem haben die Macher das Rundungsverhalten von Fließkommazahlen überarbeitet. cc ersetzte zudem gcc als Standard-Compiler. Alle Neuerungen finden Sie im Changelog aufgelistet .