Robert Bienert: Ist dieser Code ..Register-Globals-OFF-Kompatibel..?

Beitrag lesen

Moin!

klar Sicherheit ist mir wichtig und sollte allen PHPlern wichtig sein. Bestimmt lesen das hier einige durch und entscheiden sich auch dazu einiges an CODE-Altlasten zu ändern.

Hoffentlich!

Ich habe da noch ne Frage:

Nur her damit.

Es bietet sich an, bei eventuell fehlenden oder nicht übergebenen Variablen einen Default-Wert zu setzen:

if (! ($my_chichi=$_POST["chichi"]))

{
$my_chichi="Default";
}
echo $my_chichi;

  
Falls du [error_reporting](http://de.php.net/manual/de/ref.errorfunc.php#ini.error-reporting) auf E\_ALL gesetzt hast, wirst du feststellen, dass sich PHP beschwert, wenn `$_POST`{:.language-php} keinen Schlüssel namens `"chichi"`{:.language-php} enthält:  
  
~~~php
if (! (array_key_exists('chichi', $_POST) && ($my_chichi = $_POST['chichi']))) {  
    $my_chichi = 'Default';  
}  
echo $my_chichi;

Was mir gerade noch aufgefallen ist: Ich bevorzuge, wenn möglich, die einfachen 'Quotes', doppelte "Quotes" sollte man nur nehmen, wenn im String Escapesequenzen stehen oder Variablen ausgewertet werden. Der Interpreter braucht bei einfachen 'Quotes' nicht nach Escapes und Variablen Ausschau zu halten, es ist bei einfachen Zeichenketten performanter.

Ist das wichtig oder gut? Etwas aufwendig das für alle übergebenen Variablen zu machen. Oder?!

Das ist wichtig und gut und natürlich etwas aufwändig für alle übergebenen Variablen, die man benutzt. Aber nicht immer sind einfache Dinge automatisch sicherer als kompliziertere.

Viele Grüße,
Robert