Whitelist für Website
feldy
- html
0 Baba0 feldy0 Gunnar Bittersmann0 Baba
0 Der Martin0 Baba
0 Micha
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
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
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
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
@@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.
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
Danke nochmal!
Leider muss ich mich nun erstmal in die von euch genannten Möglichkeiten einlesen :)
Das könnte etwas dauern!
Vielen Dank!
Feldy
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.
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
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
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
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
@@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'
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 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'
@@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'
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
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
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
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
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