Tom: Sicherheitsrisiko $_SERVER['PHP_SELF']?

Beitrag lesen

Hello,

ich hab mal gehört das angeblich ein einfaches einbilden von $_SERVER['PHP_SELF'] alla
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">';
ein Sicherheitsrisiko darstellen soll.

Ist das Richtig?

Diese Frage kannst Du Dir mit einem kleinen Versuch beantworten, der gar nicht aufwändig ist.

Baue Dir ein Miniscript

<?php   ### info.php
    phpinfo();
?>

Mehr muss es nicht enthalten.

Nun rufe das Script über die Adressleiste Deines Browsers auf:

http://domain.tld/info.php/hier/kommt/der/text?dumm=gelaufen

Schau Dir die Variablen

$_SERVER['PHP_SELF']
   $_SERVER['SCRIPT_NAME']
   $_SERVER['PATH_INFO']

usw. an.

Wie man ein Formular mit einem ungeschützten $_SERVER['PHP_SELF'] im action-Attribut entführt, zeige ich hier nicht, aber man kann dies durch Zusendung eines manipulierten Links ganz einfach tun.

Der einfachste Weg ist,

htmlspecialchars($_SERVER['PHP_SELF'])

zu verwenden, oder alternativ $_SERVER['SCRIPT_NAME']

Liebe Grüße aus Syburg bei Dortmund

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de