ungewünschte besucher durch IP und ref-seite blocken

Kategorien: PHP & MySQL
3 Antworten
k3p4
k3p4 am Dienstag, 28. März 2006 um 15:56
hi ihrs, ich hätte mal eine kleine Frage, nachdem ich ja nicht der PHP-chexxor bin. Ich finde leider nichts wie ich es verhindern kann, dass Besucher die von einer Bestimmten Seite kommend über Link auf eine Seite gehen geblockt / andere Seite / weitergeleitet werden können. Einmal anhand der IP-Adresse. 2x anhand der Seite woher er kommt. Ich weiß das es einen Befehl gibt und zumindest letzeres durch eine Einstellung im Browser unterbunden werden kann. Helft mir ;-)

Kommentare

unkie
unkie am Dienstag, 28. März 2006 um 16:43

mit der IP addresse könnte schwer werden, da diese sich bei den meisten mit jedem neu einwählen ändert und es sonst noch proxy-server gibt! du könntest ein ganzes subnetz blocken, aber dann hätten viele ander auch nicht die möglichkeit deine seite zu besuchen!

mit refers, da gibts ne möglichkeit! aber ich weiß diese grade nicht!

blackfeet
blackfeet am Dienstag, 28. März 2006 um 18:40

Ich habe zwar deine Forumulierung nicht genau verstanden, aber ich denke du suchst nach Methoden um eine Seite gewissen Benutzer zu verwehren.

Zu der Methode, die abfragt von welcher seite der Benutzer kommt:

$referer = strtolower($_SERVER[HTTP_REFERER]);
$url = parse_url($referer);
[quote="php.net"]
Diese Funktion erzeugt ein assoziatives Array aus den verschiedenen Teilen einer URL. Diese umfassen "scheme", "host", "port", "user", "pass", "path", "query", und "fragment".
[/quote]

Dich würde von dem array dann am ehesten der host anteil interessieren.
Wenn beispielsweise ein user von webstylez.net auf deine Seite surft, würde dann in $url['host'] 'webstylez.net' stehen.

Allerdings solltest du bedenken das diese Sperre sehr leicht umgangen werden kann. Es würde beispielsweise reichen, ein neues Browser fenster mit der Seite zu öffnen.
Außerdem zweifle ich an der Sinnhaftigkeit einer solchen Sperre. Aber das sei dir überlassen.

Zum Thema IP's weiterleiten/sperren:

Als erstes musst du mal einen Pool anlegen in dem die zu sperrenden IP's sind.
Danach kannst du die IP's mit $_SERVER['REMOTE_ADDR'] erfragen und mit deinem Pool vergleichen.
Allerdings solltest du bei diser Methode bedenken, wie Cop schon sagt, dass bei den meisten Benutzern die IP-Adresse nach erneutem einwählen geändert ist und somit der Benutzer wieder die Seite ansurfen kann. Außerdem hängen in Organistationen oft viele verschiedene Computer hinter einer IP-Adresse. Somit würden alle diese geblockt werden, wenn einer von denen auf der "schwarzen Liste" steht. So könnte es passieren, das manche Leute geblockt werden, die nicht geblockt werden sollten.

Eine gute Zugangsbeschränkung kannst du dann wohl nur mit einer Registrierung erreichen.

Eine weitere Möglichkeit wäre noch cookies zu setzen.
So eine Sperre würde dann durch löschen des Cookies aber wieder aufgehoben sein.

Also allen im allen ist das Login - System wohl das sicherste und beste um eine Seite vor etwas zu schützen, da du in deiner Frage aber nicht den genauen Anwendungsfall beschrieben hast, weiß ich nicht ob das auch für dich passt.
Wenn du genauer beschreibst für was du es brauchst, kann ich näher darauf eingehen.

Ich hoffe ich konnte Helfen!

k3p4
k3p4 am Mittwoch, 29. März 2006 um 17:49

super, das hab ich gesucht.

Wir wollen vor allem jemand mit einer statischen IP-Adresse den zutritt zur Seite verwehren, da er langsam nervig wird....