Mailinglisten-Archive |
Hallo Holger, Am 08.09.2011 13:33, schrieb Holger Winter: > Hallo Liste, > > erst einmal vielen DANK für eure schnellen Antworten. > mit dem Hinweis "error_reporting(E_ALL ^ E_NOTICE);" > kann ich zunächst einmal mein Projekt wie damals benutzen. > > Als Antworten auf meine Fragen vielen zwei Stichworte, welche ich > auch auf die gefahr gleich in der Luft zerrissen zu werden hier > nochmals hinterfragen möchte: > > Sicherheit: > Wodurch wird mein Skript angreifbar wenn ich nicht zuvor prüfe ob > die abzufragende Variable einen Wert enthält? > z.B. > if($_REQUEST['speichern'] == 'ja') Ich habe vorhin schon länger darüber nachgedacht, aber mir fällt immer noch kein konkretes Beispiel ein... > noch unklarer wird meine Frage bei internen Variablen > z.B. innerhalb einer Klasse. > > "sauberes" Progammieren: > Wodurch wird das Skript fehlerfreier wenn Variablen vor abfrage auf > existenz geprüft werden. Einleuchen würde es mir in diesem Fall wenn > eine nicht benutzte Variable den Wert 0 enthalten würde, > dies ist aber nicht so. ...aber so ganz insgesamt gedacht hat PHP durch das Abschalten von register_globals [1] schon mal den Sicherheitsaspekt gestärkt. Letztendlich gings mir aber nicht um den Sicherheitsaspekt, sondern die Fehleranfäligkeit. Auf eine undefinierte Variable zuzugreifen, sorgt nun mal für eine Fehlermeldung. Sie zu unterdrücken (indem man im error_reporting die Notices ausschließt), löst das Problem nicht. Umgekehrt könnten damit auch andere Meldungen ausgeblendet werden, die in späteren PHP-Versionen ein höheres Fehlerlevel erhalten. Wenn du auf deinem Entwicklungssystem alle Fehler anzeigen lässt und dich um Fehlerfreiheit kümmerst, bist du am ehsten auf zukünftige Änderungen vorbereitet. Grüße Nico [1] http://www.php.net/manual/en/security.globals.php
php::bar PHP Wiki - Listenarchive