269 Tipps rss | 5 Nutzer online

PHP: Globale Variablen aus der URL schlecht für Sicherheit

Auf vielen Webseiten klafft noch immer eine große Sicherheitslücke. Alte PHP-Versionen übernehmen ohne Prüfung Variablen, die ihnen per POST oder aus der URL übergeben werden.

Sprich, eine URL wie

www.foo.bar/seite.php?var=1

setzt im PHP-Skript die Variable $var auf den Wert 1. Das mag bequem sein. Aber wer böses will, kann beliebige andere Variablennamen an eine URL anhängen und diese so ins Programm einschmuggeln. Und wer hat nicht zum Beispiel einen Schleifenzähler namens $i oder die Kennwort-Variable $password?

Um diese Sicherheitslücke zu schließen, gibt es seit PHP-Versionen 4.1 in der php.ini den Parameter register globals. Ist der auf off gesetzt, funktioniert das Schmuggeln nicht mehr. Um Ihren Programmcode auf das Sicherheitsplus anzupassen, verwenden Sie $_GET und $_POST. Damit können Sie per URL oder Formular übergebene Informationen in Ihren Code einbauen, etwa

$strUsername = $_GET['user'];

Diese Anweisung holt aus einer URL wie

www.foo.bar/seite.php?user=max

den Benutzernamen "max" und weist ihn der Variable $strUsername zu. Auf diese Weise funktioniert der Code auch, wenn register_globals auf off gestellt ist. Sobald Sie die Änderungen vorgenommen haben, bitten Sie Ihren Provider, den Parameter auf off zu stellen. Mehr Info dazu: http://www.php.net/register_globals

Add to Del.icio.us


Bedingungen für die Kommentareingabe
Hinweis



Ihr Kommentar:


Name:


Copyright © Der Strassenprogrammierer 1999-2012   | Tippscout 5.0
Zurück Tipps Startseite