Christoph Zurnieden: Fallgruben und -stricke: (anfänger-)typische Fehler?

Beitrag lesen

Hallo,

ich freue mich nun auf einen weiteren Beitrag von Sven Rautenberg zum Thema PHP und Anfängerfehler und PHP und Sicherheit!

Und das mein ich wirklich Ernst!

Meinen Beitrag recherchierst du bitte im Archiv.

Und das mein ich wirklich _nicht_ ernst. :)

Aber da steht mit Sicherheit viel drin, was nur mal gesammelt werden müßte.

Das kann ich nur bestätigen.
Ich poste hier ja wirklich nur, weil mir das einfach _zuviel_ war.

Dummerweise fällt mir spontan gerade nicht sonderlich viel ein.

Muß jetzt nicht unbedingt spontan sein ;-)

Es ist immer leichter, aus Sicherheitssicht heraus zu argumentieren, etwas würde Lücken haben, als so rein theoretisch zu argumentieren.

Tja, wär's leicht, hätte ich das auch alleine heben können ;-)

Die typischen Probleme mit register_globals sind schon erwähnt worden. Es sei hierbei angemerkt, dass diese Option ein sehr zweischneidiges Schwert für PHP-Programmierer ist. Eigentlich sind die Verhältnisse nur geklärt, wenn register_globals=on zwingend ist! Dann ist man sich als Programmierer bewußt, dass man in unsicheren Gefilden agiert und ausnahmslos jede Variable, die man verwendet, vorher initialisieren muß. Geht man aber von der Stellung "off" aus, dann kann man viel leichter schlampen und bei dann doch aktiviertem register_globals die größten Probleme kriegen.

Aha, danke, da haben wir doch schon mal ein Indiz. Wenn auch nicht speziell für PHP, denn Variablen sollte man eigentlich immer initialisieren.

Deshalb wichtig: Auf dem Entwicklungsserver sollten wirklich _ALLE_ Fehlerlevel ausgegeben und beseitigt werden, auch die NOTICE, die bei nicht initialisierten Variablen ausgegeben wird. Standardmäßig wird NOTICE aber leider nicht ausgegeben, sondern unterdrückt. Und damit hätten wir schon den zweiten Punkt, den man bei Skripten prüfen sollte. Ein gutes Skript gibt keine NOTICE aus.

Gibt es eigentlich bei PHP eine Compile-Time Option für so etwas wie
'gcc -Wall -Werror -ansi -pedantic'?

Summa summarum: PHP hat zwei ziemlich unrühmliche Punkte, die das Leben des Programmierers nicht leicht machen. Es gilt hier besonders, auf die Servereinstellungen zu achten oder sie (z.B. mit .htaccess-Konfiguration) explizit vorzuschreiben. Entsprechend groß ist an diesen Punkten, die leider alle Skripte betreffen, die es gibt, das Fehlerpotential.

"Der gute Programmierer setzt rein gar nix vorraus, noch nicht einmal die Deckung des Gehaltschecks!" ;-)

Gibt es wirklich nichts Spezielles? Heißt also: Archive runterladen und durchgreppen?

Na gut, aber den Versuch war es wert.

Aber auf jedene Fall: besten Dank für dei Antwort!

so short

Christoph Zurnieden