Moin!
<?php
header('Content-type: text/plain');
echo '__DIR__ : ', __DIR__ , "\n";
echo '$_SERVER["DOCUMENT_ROOT"] : ', $_SERVER["DOCUMENT_ROOT"] , "\n";
echo 'realpath($_SERVER["DOCUMENT_ROOT"]): ', realpath($_SERVER["DOCUMENT_ROOT"]), "\n";
## file 'include_me.php'
# Exit, wenn in document_root, weil dann Sicherheitsproblem auftreten kann:
if (-1 < strpos(__DIR__, $_SERVER["DOCUMENT_ROOT"]) ) {
trigger_error('Fatal: '. __FILE__
. ' darf nicht in oder unterhalb von DOCUMENT_ROOT ('
. $_SERVER["DOCUMENT_ROOT"] . ') liegen!', E_USER_ERROR);
exit;
}
?>
$_SERVER["DOCUMENT_ROOT"] zeigt den Pfad, der konfiguriert ist, bei Strato also über den oder die Links, DIR über die tatsächlichen Verzeichnisse im Filesystem. Damit liegt DIR auf Strato-Servern scheinbar stets außerhalb von $_SERVER["DOCUMENT_ROOT"]!
Dieses Skript wird demnach bei Strato niemals die Fehlermeldung ausgeben. Ich hab es jetzt als Sicherheitswarnung an Strato geschickt und hoffe damit die richtige Service-Eskalation zu erreichen, weil der Fehler in vielen Anwendungen unbemerkt bleiben wird.
Jörg Reinholz