register_globals hat noch eine weitere Gefahrenquelle: Bei PHP ist es nicht üblich, Variablen explizit zu initialisieren. Wenn man jetzt also irgendwo $foobar verwendet und ein User den URI durch &foobar=bla ergänzt, dann hat $foobar im Skript bei der "Initialisierung" den Wert bla. So sind u.U. Angriffe möglich.
Mit folgendem Snippet (als allererstes auszuführen) kann man das abstellen. Effektiv simuliert es register_globals = off.
Es ich nicht nötig, zu überprüfen, ob die Variablen auch existieren; PHP hat kein Problem damit, nichtexistente Variablen zu nullen.
register_globals hat noch eine weitere Gefahrenquelle: Bei PHP ist es nicht üblich, Variablen explizit zu initialisieren. Wenn man jetzt also irgendwo $foobar verwendet und ein User den URI durch &foobar=bla ergänzt, dann hat $foobar im Skript bei der "Initialisierung" den Wert bla. So sind u.U. Angriffe möglich.
Mit folgendem Snippet (als allererstes auszuführen) kann man das abstellen. Effektiv simuliert es register_globals = off.
Es ich nicht nötig, zu überprüfen, ob die Variablen auch existieren; PHP hat kein Problem damit, nichtexistente Variablen zu nullen.
...
Das ist dann aber lustig bei ?_GET=xd&_POST=fu - Schon sind die beiden Arrays leer
mal daran gedacht, dein geld damit zu verdienen, dau sichere bücher übers web zu schreiben? Das war sehr schön anschaulich erklärt, hab schon schlechteres in vielen komerziellen Büchern gelesen.
...
Naja, es gibt Dinge, die ich kann und Dinge, die ich nicht kann. Das Bücherschreiben gehört zu letzterem ^^ So lange ich einen Beruf ausübe und hier nicht verbannt werde spricht auch nichts dagegen weiterzumachen (sofern mir nicht die Ideen ausgehen).
Zitat
Oder mach zumindest sowas wie Selfhtml, (das ja wohl eh vor dem aus steht?)
...
Jain. Es wird wohl kein SELFHTML 9 geben. Die Version 8.1 wird aber noch gepflegt. Bald erscheint 8.1.2, in welchem nicht nur von mir gemeldete Fehler korrigiert werden, sondern auch deutlich wird, dass SELFHTML im aktuellen Zustand einfach veraltet ist.
Zitat
Dazu sei gesagt, dass man die Einstellung in der php.ini per variables_order bzw. per gpc_order ändern kann.
...
Wobei ich das jetzt ausgelassen habe, da das der Benutzer in der Regel nicht ändern kann. Zu register_globals = Off wird er ja gezwungen und sollte daher Bescheid wissen. Dann sind die von dir genannten Einstellungen auch nicht mehr so wichtig.
Zitat
Bei PHP ist es nicht üblich, Variablen explizit zu initialisieren.
...
Danke, daran hatte ich nicht gedacht. Werde bei einer späteren Aktualisierung sehen, wie ich das mit einbauen kann.
Zitat
Das ist dann aber lustig bei ?_GET=xd&_POST=fu - Schon sind die beiden Arrays leer
...
Nein, _REQUEST enthält ja nicht _GET und _POST sondern ist eine Zusammenfassung aus dem Inhalt von _GET, _POST und _COOKIE. Hier werden dann ähnlich rg=On die Variablen überschrieben, die den selben Namen teilen.
Nein, _REQUEST enthält ja nicht _GET und _POST sondern ist eine Zusammenfassung aus dem Inhalt von _GET, _POST und _COOKIE. Hier werden dann ähnlich rg=On die Variablen überschrieben, die den selben Namen teilen.
...
Nein, es stimmt tatsächlich. Wenn $_REQUEST einen Schlüssel namens _GET hat und ich $$eintrag unsette wird $_GET genullt.