Christian Kruse: Sicherheitslücken

Beitrag lesen

Hoi,

  • Variablen *immer* initialisieren! Nicht-Initialisierte
      Variablen koennen in PHP zu unvorhergesehenen Ergebnissen
      fuehren (Stickwort: Importierung von URL-Parametern in den
      globalen Namensraum).

Insbesondere heißt das: *Kompletter* Verzicht auf "magische"
Variablen mit nicht allgemein(!) feststehendem Namen, besonders auf
die schon erwähnten URL-Parameter, aber auch Environment-Werte wie
$HTTP_REFERER etc. Benutze je nach Bedarf $HTTP_GET_VARS,
$HTTP_POST_VARS und die Funktion getenv().

Nun, in Bezug auf die GET- und POST-Parameter das sehe ich etwas
anders. Ich glaube, es reicht, die User-Eingaben (also die GET- und
POST-Variablen) zu validieren. Allerdings muss ich dir recht geben,
wenn du sagst, Scripte, die $HTTP_POST_VARS, $HTTP_GET_VARS und
$HTTP_POST_FILES benutzen, sind besser lesbar. Dasselbe gilt IMHO
fuer $HTTP_SESSION_VARS und getenv().

Aber mit der Zeit solltest du selbst ein Gespuehr dafuer
entwickeln und "wissen", was sicher oder unsicher ist.

Genau. Meminisse: Sicherheit ist kein Ziel, sondern ein Weg.

Netter Spruch ;-)

Gruesse aus dem schoenen LH,
 c.j.k