PHP

ID #1031

PHP und Variablen / Sicherheit bei PHP

PHP-Skripte können sehr einfach übergebene Parameter auslesen. 

Aufgrund der Kompatibilität zu älteren Versionen (und faulen Programmierern) existiert jedoch noch immer die Möglichkeit, Variablen auch aus der URL (z.b. http://meine.domain/index.php&erlaubt=true) auszulesen.

Diese Funktionalität ist sehr gefährlich und kann zum Missbrauch führen:
<?php
i
f ($_GET['password'] == 'zugangspasswort')
{ $erlaubt = true; }[...]
if ($erlaubt) {
// Aktionen, die einem angemeldeten Benutzer vorbehalten sind  [...]
}
?>

Wenn man sich das obige Fragment anschaut, sieht man, dass man das Passwort nicht wirklich benötigt, da die Zugangsvariable einfach zu setzen ist. Besser ist es, die Sessions-Funktionen von PHP zu verwenden und den Code in dieser Art umzubauen:

<?php
$erlaubt = false;
if ($_GET['password'] == 'zugangspasswort') { 
$erlaubt = true;
}
[...]
if ($erlaubt)
{ // Aktionen, die einem angemeldeten Benutzer vorbehalten sind  [...]

}
?>

Durch diesen kleinen Trick (die Variable $erlaubt wurde voreingestellt) wurde Hackern die Möglichkeit des Variablen-Spoofing genommen.

Wenn man nun wirklich sicher gehen will, das mit den Variablen nichts passieren kann, bietet es sich an, alle Variablen in die Session zu schreiben und dann in der auswertenden Seite dort auch auszulesen (eine Session kann extern nicht verändert werden).

Tags: -

Verwandte Artikel:

Letzte Änderung des Artikels: 2006-06-03 12:44
Verfasser des Artikels: Support
Revision: 1.7

Digg it! Artikel ausdrucken Artikel weiterempfehlen Als PDF-Datei anzeigen
Übersetzungsvorschlag für Übersetzungsvorschlag für
Bewertung der Nützlichkeit dieses Artikels:

Durchschnittliche Bewertung: 2 von 5 (1 Bewertungen)

vollkommen überflüssig 1 2 3 4 5 sehr wertvoll

Kommentieren nicht möglich