nach Umzug zu netcup: include - Befehlt wird nicht ausgeführt

  • Blöde Frage: Wie generierst Du den eigentlichen Inhalt? Übergibst Du $seite o.ä. ungefiltert an irgendeine include/require Funktion?

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Blöde Frage: Wie generierst Du den eigentlichen Inhalt? Übergibst Du $seite o.ä. ungefiltert an irgendeine include/require Funktion?

    Ja ich denke so wird es gemacht:


    und die jeweils anzuzeigende Sete wird durch parameter s übergeben: https://chemnitz-wetter.de/index.php?s=start


    so zumindest habe ich das verstanden?!

  • PHP
    require("$seite.php");

    Das ist definitiv ein Sicherheitsproblem! Ein Angreifer kann damit jede beliebige Datei einbinden. Wenn es die PHP-Konfiguration erlaubt sogar von externen Quellen, wodurch eine Remote-Code-Execution (PHP) möglich wäre. An diese Stelle gehört mindestens ein basename() um das Schlimmste zu verhindern, noch besser eine Whitelist.


    Wer hat die Seite programmiert? Der Code von dem Ding ist wirklich sehr bedenklich und sollte lieber nicht mehr verwendet werden, ohne massive Anpassungen.

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Ersetz

    Code
    require("$seite.php");

    bitte durch

    Code
    if(str_pos(realpath("$seite.php"), __DIR__) !== false) {
      require("$seite.php");
    }

    Damit wird zumindest sichergestellt, dass nur Dateien aus dem Verzeichnis (und Unterverzeichnissen) eingebunden werden können.

  • Vielen Dank noch einmal für den Hinweis, habe nun


    PHP
    <?php
    if(strpos(realpath("$seite.php"), __DIR__) !== false) {
    require("$seite.php");
    }
    ?>


    eingefügt.


    Vg

    siolein