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).

 

Haben Sie Fragen? Anfrage einreichen

0 Kommentare

Zu diesem Beitrag können keine Kommentare hinterlassen werden.
Powered by Zendesk