PHP 4.3

14.9 Übung

  1. Einige Sicherheitsaspekte wurden in der Lerneinheit bereits angesprochen – Schutz von Verzeichnissen vor unberechtigtem Zugriff, Schutz von sensiblen Daten vor unberechtigtem Lesen usw. Es gibt aber auch Probleme, die durch Ihren eigenen Code entstehen. Sie programmieren ein Skript, und solange der Benutzer nur die erwarteten, ungefährlichen Eingaben macht, funktioniert auch alles wunderbar. Sobald aber ein Benutzer tatsächlich Zugang zu Ihrem Webserver erlangen will, öffnen ihm einige Skripte Tür und Tor. Dem sollten Sie natürlich beim Programmieren vorbeugen.
    Betrachten Sie das folgende Skript:
      // Löschen einer Datei aus dem Verzeichnis des Users
      $username = $HTTP_GET_VARS["user_submitted_name"];
      $userdir = $username;
      $file_to_delete = $HTTP_GET_VARS["userfile"];
      unlink($userdir . "/" . $HTTP_GET_VARS["userfile"]);
      echo "$file_to_delete wurde gelöscht!";
    Dieses Skript ist Teil einer Verwaltung von Dateien auf dem Server. Jeder Benutzer hat auf dem Server ein eigenes Verzeichnis mit seinem Namen, in dem er Dateien anlegen, ändern und löschen darf. Der Benutzer überträgt seinen Namen in der Variablen $HTTP_GET_VARS["user_submitted_name"] und den Namen der zu löschenden Datei in der Variablen $HTTP_GET_VARS["userfile"].
    Warum ist diese Konstruktion gefährlich, d.h. bei welchen Benutzereingaben können Sicherheitsprobleme auftreten? Und wie können Sie das verhindern?
    Ändern Sie den Code in der Datei dateienloeschen.php entsprechend ab (Download: dateienloeschen.zip).

  2. Wie bereits in der Lerneinheit gesagt, müssen Sie nicht für jede Aufgabe wieder das Rad neu erfinden und alle Programmierprobleme selber lösen. Schauen Sie sich doch z.B. einmal auf den Seiten von Hotscripts um: http://www.hotscripts.com/PHP/Scripts_and_Programs/
    Entdecken Sie, was mit PHP alles möglich ist. Laden Sie sich das ein oder andere Skript herunter und testen Sie, ob Sie vielleicht etwas davon für Ihre eigenen Anwendungen gebrauchen können.

  3. Überlegen Sie sich für einen Web-Shop eine Seitenstruktur, die Aufgaben der einzelnen Seiten und ob Teile wiederverwendbar in Funktionen oder Dateien ausgelagert werden können.

Lösung

Kommentare (0)

Ihr Kommentar

Name