Hallo ihr da draußen,
ich habe deinen skriptschnipsel noch so umgeschrieben, daß er mir genau die alte form der variablen auswirft, ohne daß ich register_globals auf "on" setzen müßte - also, sehe ich das richtig? - auch ohne die entsprechende Sicherheitslücke.
Nein, das siehst du eher nicht richtig. Eben das ist nämlich die Sicherheitslücke. Nehmen wir ein Mal an, du hättest eine Seite, auf der man sich anmelden muss. Es gibt normale Benutzer und Administratoren. Und nun, stell dir vor, du würdest zum Beispiel im Script eine Variable nahmens $admin auf true setzen, wenn das Script feststellt, dass du als Administrator angemeldet bist. Und wenn du nicht als Administrator angemeldet bist, wird die Variable $admin garnicht erst gesetzt. Und jetzt ist beispielsweise register_globals auf on bzw. dein umgeschriebener Scriptschnipsel wird ausgeführt. Dann könnte jemand in der URL einfach den Parameter "admin" mit dem Wert "true" angeben, und er wäre als Administrator angemeldet. Und das ist die Sicherheitslücke, denn das war nur ein Beispiel. Auf manchen Seiten kann ein passwortloses Anmelden als Administrator gewaltige Schäden anrichten. Sicherlich, man kann natürlich so programmieren, dass es keine Möglichkeit gibt, über URL-Parameter irgend etwas Unerlaubtes im Script-Ablauf zu verändern, aber man kann ja oft nicht immer alle Variablen im Überblick behalten. Und irgendwann wird es dann passieren, dass auf ein Mal irgend ein Hacker irgend welche Rechte auf irgend welche Daten oder Dateien kriegt... Deswegen: Lieber auf $_POST, $_GET und $_SERVER (und AFAIK auch noch $_ENV und $_COOKIE [Siehe phpinfo()]) umgewöhnen als Sicherheitsrisiko einzugehen. Und kleiner Tipp: Damit du nicht jeden einzelnen Befehl nach irgend welchen Variablen, die du in $_GET o. ä. umändern musst, durchsuchen musst, einfach error_reporting auf 15 setzen, register_globals auf off lassen. Dann kriegst du durch die Warnungen ganz einfach die Zeilennummern heraus und kannst es dort umändern. -- Grüße von hier drinnen, aus Biberach an der Riss (<http://www.stadt-biberach.de>), Dogfish (<http://dogfish.net.tc>)