phpbar.de logo

Mailinglisten-Archive

[php] undefinierte Variablen

[php] undefinierte Variablen

Nico Haase nico at nicohaase.de
Do Sep 8 14:39:11 CEST 2011


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