Mark: Skripte etc. gegen externen Aufruf schützen.

Hallo,

im Augenblick habe ich für den geschützten Bereich einer Seite in allen extern geladenen Formularen und PHP-Auswerte-Skripten jeweils eine SESSION-Überprüfung zu Beginn, um Missbrauch der Skripte oder Formulare zu vermeiden, sollte man versuchen, die Skripte nicht über die eigentliche Haupt-Seite sondern direkt aufzurufen. Das funktioniert bislang.

Gerne würde ich es mir aber einfacher machen und defacto nur auf den eigentlichen Hauptseiten des geschützten Bereichs jeweils die SESSION prüfen und alle SKripte usw. in ein Verzeichnis packen, dass von Außen nicht aufgerufen werden kann.

Ist sowas möglich oder führt kein Weg an dem Einbinden der SESSION-Überprüfung  zu beginn einer jeden Seite/Skript vorbei?

Viele Grüße
Mark

  1. Gerne würde ich es mir aber einfacher machen und defacto nur auf den eigentlichen Hauptseiten des geschützten Bereichs jeweils die SESSION prüfen und alle SKripte usw. in ein Verzeichnis packen, dass von Außen nicht aufgerufen werden kann.

    Genauso machst du das!

    Ist sowas möglich

    Ja. Du musst eben 'nicht-öffentliche' Verzeichnisse haben. Dies ist dann der sicherste Weg. Noch sicherererer als die Verzeichnisse mit .htaccess zu schützen.

    Cheers,
    Baba

    1. [...] in ein Verzeichnis packen, dass von Außen nicht aufgerufen werden kann.

      Ja. Du musst eben 'nicht-öffentliche' Verzeichnisse haben. Dies ist dann der sicherste Weg.

      Mit "von außen nicht aufgerufen" werden können soll heißen, dass es außerhalb des DocumentRoot liegt.

      Noch sicherererer als die Verzeichnisse mit .htaccess zu schützen.

      Oder über die Server-Konfiguration oder aber über eine simple die()-Funktion die aufgerufen wird, wenn eine bestimmte Konstante aus der allgemeinen Konfiguration fehlt.

      Aber all das hat den Nachteil, dass es scheinter kann, wenn z.B. .htaccess-Anweisungen nicht erlaubt sind, mod_auth nicht verfügbar ist oder der PHP interpreter nicht vorhanden ist.

      1. Ja. Du musst eben 'nicht-öffentliche' Verzeichnisse haben. Dies ist dann der sicherste Weg.

        Mit "von außen nicht aufgerufen" werden können soll heißen, dass es außerhalb des DocumentRoot liegt.

        Ich komme leider nicht oberhalb des root. Hatte das schon als Option gefunden, fällt aber leider flach.

        .htaccess geht technisch.
        Dazu habe ich bereits gelesen, dass man damit bspw. eigene Fehlerseiten erzeugen kann usw. und eben auch ein Passwort-Schutz.
        Ist der Passwort-Schutz der richtige Weg oder kann ich auch simpler die .htaccess-Datei so gestalten, das sie einfach das Verzeichnis in dem sie liegt, gegen Zugriffe von Außen schützt.
        Hätte dann den im Root den Ordner "scripts" mit der .htaccess und den ganzen Skripten, die ich schützen will.
        Zusätzlich liegen dann im Root die index.php und die Seiten für den geschützten Bereich.

        Viele Grüße
        Mark

        1. Ich komme leider nicht oberhalb des root. Hatte das schon als Option gefunden, fällt aber leider flach.

          Schade, ist bei meiner Uni-Homepage aber leider auch so. Damit fällt die sicherste Methode aus.

          .htaccess geht technisch.
          simpler die .htaccess-Datei so gestalten, das sie einfach das Verzeichnis in dem sie liegt, gegen Zugriffe von Außen schützt.

          just:
          deny from all
          in die .htaccess. Fäddsch.

          Brauchst Du ja keine Benutzerprüfung. Selbst die adminsten aller Admins sollen ja schön über die Hauptseiten da reinsurfen (nat. schaut php intern nicht nach den .htaccess).

          Cheers,
          Baba

          1. Jo läuft,
            danke Euch allen!
            Die Foo Flag baue ich trotzdem noch ein. Doppelt gemoppelt hält besser.

            1. Die Foo Flag baue ich trotzdem noch ein. Doppelt gemoppelt hält besser.

              Aber bitte nicht FOO verwenden :D

        2. Ja. Du musst eben 'nicht-öffentliche' Verzeichnisse haben. Dies ist dann der sicherste Weg.

          Mit "von außen nicht aufgerufen" werden können soll heißen, dass es außerhalb des DocumentRoot liegt.

          Ich komme leider nicht oberhalb des root. Hatte das schon als Option gefunden, fällt aber leider flach.

          .htaccess geht technisch.

          Das kommt darauf an, auf welche Module du Zugriff hast - wird schon klappen:

          Ist der Passwort-Schutz der richtige Weg

          nein

          oder kann ich auch simpler die .htaccess-Datei so gestalten, das sie einfach das Verzeichnis in dem sie liegt, gegen Zugriffe von Außen schützt.

          Ja, das schon eher :)

          Stichwort: <http://de.selfhtml.org/servercgi/server/htaccess.htm#ip_bereiche_namen@title=deny from all>

          Zusätzlich liegen dann im Root die index.php und die Seiten für den geschützten Bereich.

          Zusätzlich solltest du aber auf jeden Fall die jeweiligen Scripte mit einer Abbruchbedingung ausstatten.

          config.php:

          define('FOO', true);

          Andere Scripte inkludieren config.php und haben folgendes dring:

          if(!FOO) die();

        3. Tach!

          Ich komme leider nicht oberhalb des root. Hatte das schon als Option gefunden, fällt aber leider flach.

          Welches "root"? Das DocumentRoot oder dein Kundenverzeichnis? Bei ordentlichen Providern kann man das DocumentRoot innerhalb seines Kundenverzeichnisses in ein Unterverzeichnis legen, dann hat man "daneben" genug Platz. Dies kann man üblicherweise bei der Domainnamenkonfiguration einstellen.

          dedlfix.

          1. Moin!
            Korrekt. Wirklich ordentliche Provider haben aber sowieso schon ein Verzeichnis (z.B. www) angelegt, auf das gezeigt wird und ersparen einem damit das Rumkonfigurieren.

            Funktionieren sollte es aber eigentlich immer, ausser halt bei 'providerlosem' Webspace wie an Schulen, Unis oder beim DSL-Anbieter und aehnlichem.

            --
            Signaturen sind blöd!