feldy: Whitelist für Website

Guten Tag!
Ich bin hier in diesem Forum fast genauso neu, wie im Umgang mit HTML, daher bitte ich um Verständnis, wenn ich nach den einfachsten Dingen frage.

Mein Ziel:
Ich will, dass nur bestimmte Nutzer auf meine Website gelangen können. Dazu würde ich am liebsten einfach eine whitelist.txt uploaden, in der dann jedes Mal nachgeschaut wird, ob der Nutzer, der gerade auf meine Website zugreifen will, auch dazu berechtigt ist und dementsprechend entweder den Zugriff gewährt oder eine Fehlermeldung ausgibt. Selbstverständlich bin ich auch mit Alternativen zufrieden, solange mein Ziel (den Zugriff auf die Website nur für bestimmte Nutzer zu gewähren) erfüllt ist.

Meine Frage:
Wie mache ich das?

Vielen Dank im voraus für Eure Hilfe!

Feldy

  1. Hallo,

    Ich will, dass nur bestimmte Nutzer auf meine Website gelangen können.

    Dann musst Du die Nutzer irgendwie identifizieren, nicht wahr?

    Beispiele: (alle Beispiele verlangen nach einer serverseitigen Scriptsprache)
    a) über die IP
    b) über ein Passwort
    c) über Account (Vielleicht verwendest Du sowas schon und hast es nicht selbst gebaut?)

    a) ist am schnellsten realisiert und hat den Vorteil, dass die User nichts weiter eingeben müssen. Nachteile: IP's können sich ändern und jeder mit dieser IP kann die Seite sehen.

    Ansatz mit php: [link:http://php.net/manual/de/reserved.variables.server.php@title=$_SERVER['REMOTE_ADDR'\];]

    Die whitelist.txt liest Du dann noch mit php ein und vergleichst den aktuellen Wert mit den Werten aus der Datei. (Stichwort "txt-Dateien lesen mit php".)

    Cheers,
    Baba

    1. Hallo,

      Ich will, dass nur bestimmte Nutzer auf meine Website gelangen können.
      Dann musst Du die Nutzer irgendwie identifizieren, nicht wahr?

      Beispiele: (alle Beispiele verlangen nach einer serverseitigen Scriptsprache)
      a) über die IP
      b) über ein Passwort
      c) über Account (Vielleicht verwendest Du sowas schon und hast es nicht selbst gebaut?)

      a) ist am schnellsten realisiert und hat den Vorteil, dass die User nichts weiter eingeben müssen. Nachteile: IP's können sich ändern und jeder mit dieser IP kann die Seite sehen.

      Ansatz mit php: [link:http://php.net/manual/de/reserved.variables.server.php@title=$_SERVER['REMOTE_ADDR'];]

      Die whitelist.txt liest Du dann noch mit php ein und vergleichst den aktuellen Wert mit den Werten aus der Datei. (Stichwort "txt-Dateien lesen mit php".)

      Cheers,
      Baba

      Danke für die schnelle Hilfe!
      Das Prinzip gefällt mir sehr gut und ist genau, was ich mir vorgestellt habe.

      Nur habe ich leider keine Ahnung, wo ich das jetzt in meiner HTML-Website unterbringe... (Entschuldigung, ich bin wie gesagt komplett neu auf diesem Gebiet)

      Das hier hatte ich übrigens über Google gefunden:
      in_array($_SERVER['REMOTE_ADDR'],file("./whitelist.txt", "r"))

      Danke nochmal!
      Feldy

      1. Moin,

        Danke für die schnelle Hilfe!
        Das Prinzip gefällt mir sehr gut und ist genau, was ich mir vorgestellt habe.

        Das glaube ich nicht. Woher willst du die sich bei Otto-Normal-Usern ständig ändernden IPs kennen?

        Die schnellste und einfachste Möglichkeit die Seite zu schützen, ist die Apache Authentifikation, wie Gunnar schon schrieb. Dazu gibt es viele Seiten im Internet, Stichwort: htaccess.

        Grüße Marco

        1. @@misterunknown:

          nuqneH

          Die schnellste und einfachste Möglichkeit die Seite zu schützen, ist die Apache Authentifikation

          Die Authentifikation gehört doch allgemein zu HTTP, nicht speziell zu Apache, oder? Andere Webserver sollten das auch können; natürlich heißen die Konfigurationsdateien dann anders.

          Qapla'

          PS. Wie auch immer, aber nicht mit Deppenleerzeichen.

          --
          „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
          1. Moin,

            Die Authentifikation gehört doch allgemein zu HTTP, nicht speziell zu Apache, oder? Andere Webserver sollten das auch können; natürlich heißen die Konfigurationsdateien dann anders.

            Das System ist schon mit NCSA HTTPd eingeführt worden, was der Vorläufer des heutigen Apache ist. NCSA-kompatible Webserver können das demzufolge heute auch. Allerdings sind neben dem Apache meines Wissens kaum NCSA-kompatible Webserver üblich.

            .htaccess (engl. hypertext access „Hypertext-Zugriff“) ist eine Konfigurationsdatei, in der verzeichnisspezifische Einstellungen auf NCSA-kompatiblen Webservern (z. B. Apache) vorgenommen werden können.
            (Wikipedia)

            Grüße Marco

            1. Danke nochmal!

              Leider muss ich mich nun erstmal in die von euch genannten Möglichkeiten einlesen :)

              Das könnte etwas dauern!

              Vielen Dank!
              Feldy

      2. Das hier hatte ich übrigens über Google gefunden:
        in_array($_SERVER['REMOTE_ADDR'],file("./whitelist.txt", "r"))

        So könnte das aussehen.
        Prüfe, ob Du php ausführen kannst.

        • html in php umbenennen (index.html zu index.php)
        • Dort schreibst Du rein:
          <?php
          echo "PHP Test";
          ?>

        Wenn dann beim Aufruf von index.php "PHP Test" erscheint hast Du php. Wenn dort erscheint <?php echo "PHP Test"; ?> hast Du es nicht.

        Sei Dir sicher, dass es das ist, was Du willst. Die angesprochenen Bedenken musst Du verstehen. Geht es um sensible Daten, ändern sich die IPs der User häufig, verwenden viele User die gleiche IP, sollen aber von Dir unterschiedlich behandelt werden...?

        Cheers,
        Baba

        1. Moin,

          Sei Dir sicher, dass es das ist, was Du willst. Die angesprochenen Bedenken musst Du verstehen. Geht es um sensible Daten, ändern sich die IPs der User häufig, verwenden viele User die gleiche IP, sollen aber von Dir unterschiedlich behandelt werden...?

          Auch die Sicherheit der Daten ist nicht gewährleistet. Mit der PHP-Lösung lässt sich beispielsweise nicht verbieten, die whitelist.txt direkt aufzurufen.

          Grüße Marco

          1. Hallo,

            Auch die Sicherheit der Daten ist nicht gewährleistet. Mit der PHP-Lösung lässt sich beispielsweise nicht verbieten, die whitelist.txt direkt aufzurufen.

            Doch, sofern sie ausserhalb des documentroot liegt.

            vg ichbinich

            --
            Kleiner Tipp:
            Tofu schmeckt am besten, wenn man es kurz vor dem Servieren durch ein saftiges Steak ersetzt...
            1. Moin,

              Doch, sofern sie ausserhalb des documentroot liegt.

              Das stimmt natürlich.
              Das muss man aber beachten. Hinzu kommt, dass man bei manchen Webhostern keine Daten außerhalb des Document-Root ablegen kann.

              Grüße Marco

              1. @@misterunknown:

                nuqneH

                Doch, sofern sie ausserhalb des documentroot liegt.

                Das stimmt natürlich.
                Das muss man aber beachten. Hinzu kommt, dass man bei manchen Webhostern keine Daten außerhalb des Document-Root ablegen kann.

                Wobei man an mit '.ht' beginnende Dateien auch nicht über HTTP rankommen sollte, auch wnn sie innerhalb des Document-Root liegen. Wenn man die Datei also .htwhitelist.txt benennt …

                Qapla'

                --
                „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
                1. Hallo,

                  Hinzu kommt, dass man bei manchen Webhostern keine Daten außerhalb des Document-Root ablegen kann.
                  Wobei man an mit '.ht' beginnende Dateien auch nicht über HTTP rankommen sollte, ...

                  ... wenn der Webserver ein Apache und nicht beispielsweise ein IIS ist. Oder äfft ein IIS diese für Apachen übliche Ausschlussregel nach, obwohl er selbst keinen Grund dazu hätte?

                  So long,
                   Martin

                  --
                  Der Sinn einer Behörde besteht in ihrer Existenz.
                    (alte Beamtenweisheit)
                  Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                  1. @@Der Martin:

                    nuqneH

                    Wobei man an mit '.ht' beginnende Dateien auch nicht über HTTP rankommen sollte, ...

                    ... wenn der Webserver ein Apache und nicht beispielsweise ein IIS ist.

                    Grmpf, bin ich jetzt in meine eigene Falle getappt?

                    Qapla'

                    --
                    „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
    2. @@Baba:

      nuqneH

      Beispiele: (alle Beispiele verlangen nach einer serverseitigen Scriptsprache)

      Nein.

      b) über ein Passwort

      Das ist auch mit serverseitigen Einstellungen ohne Scripting http://de.selfhtml.org/servercgi/server/htaccess.htm#verzeichnisschutz@title=möglich.

      a) über die IP

      Das ist keine gute Idee.

      Qapla'

      --
      „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
      1. a) über die IP

        Das ist keine gute Idee.

        Pauschal kann man das nicht sagen. In bestimmten Fällen, ist das sinnvoll und wird verwendet. Der OP muss das entscheiden.

        Cheers,
        Baba

    3. Hi,

      Ich will, dass nur bestimmte Nutzer auf meine Website gelangen können.
      Dann musst Du die Nutzer irgendwie identifizieren, nicht wahr?

      das ist genau der Punkt.

      a) über die IP

      Damit identifizierst du aber keinen Nutzer. Denn du deutest ja selbst schon an:

      IP's können sich ändern und jeder mit dieser IP kann die Seite sehen.

      Eben. IP-Adressen von privaten Internet-Anschlüssen ändern sich sogar häufig, manchmal gar von einem Request zum nächsten. Andererseits ist es keine Seltenheit, dass eine ganze Firma oder eine WG nur eine einzige öffentliche IP hat, die von allen gemeinsam genutzt wird (Proxy oder Router).
      Ergo ist die IP-Adresse kein brauchbares Merkmal zur Identifizierung.

      b) über ein Passwort
      c) über Account (Vielleicht verwendest Du sowas schon und hast es nicht selbst gebaut?)

      Was ist der Unterschied? Wenn ich einem Nutzer einen Anmeldenamen und ein Kennwort zuteile, dann hat der bei mir einen Account. Das ist IMHO untrennbar mit einem Kennwort verbunden.

      Aber ohne irgendeine serverseitige Technik geht da nichts.

      Ciao,
       Martin

      --
      Auch mit eckigen Radios kann man Rundfunk hören.
      Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
      1. b) über ein Passwort
        c) über Account (Vielleicht verwendest Du sowas schon und hast es nicht selbst gebaut?)

        Was ist der Unterschied?

        Nur Passwort: der User muss ein Passwort kennen, dass er in ein Feld eingibt. Es gibt kein Dupel: Benutzer/Passwort. Wenn das PAsswort korrekt ist, wird das in einer Sessionvarialbe gespeichert. Zb.

        Cheers,
        Baba

        1. Hallo,

          b) über ein Passwort
          c) über Account (Vielleicht verwendest Du sowas schon und hast es nicht selbst gebaut?)

          Was ist der Unterschied?
          Nur Passwort: der User muss ein Passwort kennen, dass er in ein Feld eingibt. Es gibt kein Dupel: Benutzer/Passwort.

          ah, jetzt versteh ich, was du meinst. Ein festgelegtes Passwort (oder einen Pool von n zulässigen Passworten), das für alle Nutzer gilt. Damit würde man aber keinen Nutzer identifizieren, sondern nur feststellen, dass er zum elitäten Zirkel gehört - oder ein gültiges Passwort zufällig irgendwo aufgeschnappt hat.

          Sowas würde ich aber nur anwenden, wenn ich keine Sicherheitsanforderungen habe und der Passwort-Zugang eigentlich nur Spielerei ist.

          Ciao,
           Martin

          --
          Paradox ist, wenn der Innenminister sich äußert und der Außenminister sich erinnert.
          Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
  2. Hallo feldy:,

    neben der Lösung von Gunnar hilft Dir ggf. das Sessionbasiertes Loginsystem weiter - sofern Du mit PHP arbeiten möchtest.

    Mit freundlichem Gruß
    Micha