magic_quotes und suchmaschinenfreundliche URLs

24. November 2008

Nachdem uns HHG freundlicherweise auf die Mängel in den XT- und Gambio-Patches für das magic_quotes-Problem bei den suchmaschinenfreundlichen URLs hingewiesen hat (vielen Dank nochmal dafür!), haben wir uns die ganze Problematik noch einmal genauer angesehen. Nachdem wir HHGs Verbesserungsvorschläge in einen überarbeiteten Security-Patch haben einfließen lassen, sind uns dabei weitere Lücken im selben Bereich aufgefallen:

Bei Verwendung der suchmaschinenfreundlichen URLs werden Parameter an den Shop nicht direkt ins GET-Array geschrieben, sondern über die PATH_INFO übertragen, von wo aus sich der Shop die key/value-Pairs zieht und diese quasi selbst ins GET-Array schreibt. Durch dieses Verfahren wird allerdings die Anwendung der PHP-Sicherheitseinstellung magic_quotes_gpc umgangen, wodurch die Einspeisung von SQL-Injections erleichtert wird.

Der ursprünglich von XT empfohlene Sicherheitspatch wendet die Funktion addslashes() an den GET-Values an, um das magic_quotes_gpc-Verhalten nachzustellen. Vergessen wurde dabei allerdings, dass sich magic_quotes_gpc auch auf die GET-Keys auswirkt und diese darum ebenfalls mit addslashes() behandelt werden sollten, um den Shop effektiver gegen SQL-Injections zu schützen.

Weiter ist uns noch ein anderes Problem bei der Säuberung der suchmaschinenfreundlichen URLs aufgefallen: Arrays, die über das „suchmaschinenfreundliche Format“ an den Shop übergeben werden, werden nicht gesichert, wodurch neben SQL-Injections theoretisch auch Cross-Site-Scripting (XSS) möglich wird.

Unser überarbeiteter Security-Patch beinhaltet
– HHGs Korrekturen bzgl. get_magic_quotes_gpc()
– die Behandlung der GET-Keys mit addslashes()
– und die Säuberung mehrdimensionaler GET-Arrays aus suchmaschinenfreundlichen URLs

Download über die URL
http://www.gambio-shop.de/downloads/file.php?id=patch-081124
(Installationsanleitung enthalten)