Zugriff auf meine Seite einschränken/kontrollieren?!
#1
geschrieben 09. Oktober 2013 - 10:10
wollte fragen ob und wie es möglich ist, meine web seite von anderen bestimmten user zu schützen...
würde gerne so eine kontrolle haben, z.bs. wenn der user nicht aus deutschland kommt blocken (oder wo anders weiterleiten), wenn der user mit der ip heute schon da war, den für x tage blocken, wenn der user von einer bestimmten seite kommt blocken oder zutritt gewähren, bzw. auch über das sogenannte fingerprinting den user durchlassen oder halt nicht...
ist sowas möglich? wenn ja mit welchen mitteln kann man es machen, bzw. macht man es?
Anzeige
#3
geschrieben 09. Oktober 2013 - 11:08
html/css...
habe aber gedacht es würde noch besser sein wenn man ein script (ist egal in welcher sprache) auf einen anderen server setzt und dieses script sollte dann wenn alles stimmt zu meiner seite weiterleiten?! es sollte vielleicht sowas prüfen können:
1. prüfung: der user soll von seite x kommen, wenn nicht dann nicht weiterleiten, oder wenn der user direkt auf meine seite kommt sperren (oder nicht sperren je nachdem)
2. prüfung: ip wenns sich wiederholt für x tage sperren/nicht auf meine seite weiterleiten
3. prüfung: eventuell wenn es geht so eine art fingerprinting check?!
würde das gehen? wenn ja gibt es schon was vorgefertigt? oder gibt es dafür anleitungen im netz wie man es machen kann? bin, sagen wir mal, anfänger darum würde so ein how to super für mich sein
#4
geschrieben 09. Oktober 2013 - 11:15
Bei den vielen IP ist es fast unmöglich so zu sperren, das nur bestimmt funktionieren.
Z.B. den User X möchtest du, das er deine Seite sieht, den User Y nicht, beide sind aber über dieselbe IP im Netzt ( z.B. in einer Uni ), also geht es dann schon mal nicht.
#5
geschrieben 09. Oktober 2013 - 11:22
ich glaube (hoffe) nicht das es so viele ip´s werden die gesperrt werden müssen... also kenne mich da nicht so aus aber wenn es paar ip´s sind dann dürfte es ja nicht so ein grosses problem sein?
und naja, würde das risiko eingehen das einer (uni, cafe oder sonst was) auf meine seite kommt den für x tage zu sperren wenn die ip sich wiederholt...
edit:
und was ist mit der 1. prüfung?
sagen wir mal der user kommt von seite x, oder der user kommt nicht von seite x, dann halt sperren, bzw. nicht weiterleiten?
Dieser Beitrag wurde von Croxxx69 bearbeitet: 09. Oktober 2013 - 11:24
#6
geschrieben 09. Oktober 2013 - 12:42
Wenn ja, so sollte in diesem Link ein $_POST-Parameter stehen, der die Herkunft in irgendeiner Form enthält-
sowas kann man aber auch türken, wenn man beispielsweise diesen Parameter an die URL per Hand ran setzt.
Um solche Variablen auszulesen, brauchst Du auf Deiner Seite aber auch PHP. Damit kannst Du dann sowas prüfen wie if($_GET['herkunft'] != "SeiteX")header("Location: http://www.abgewiesen.com/").
Kann wohl sein, dass es auch einen Weg gibt, Serverübergreifend diese Variable zu verstecken, mit $_POST['herkunft'], dann müsste der andere Server, auf dem Seite X liegt, ein Formular für Dich einpflanzen, in dem eine versteckte Variable mit der id "herkunft" steht und dem Wert "SeiteX".
Die hier erwähnten Werte und IDs/Variablennamen... sind natürlich nur Beispiele.
Steht also in der url Deiner Seite nicht ?herkunft=SeiteX am Ende, so wird der jenige auf die Seite www.abgewiesen.com umgeleitet.
Du kannst außerdem die IP auslesen mittels $_SERVER['REMOTE_ADDR'] und es ist nicht schwer, eine Liste an IPs anzulegen, beispielsweise in einer MYSQL-Datenbank, wo Du den letzten Zugriff durch IP-Addresse und einen Zeitstempel ablegst. Anhand der seitdem verstrichenen Zeit kann man die Bedingung der letzten 24 Stunden prüfen und passt das alles nicht, ebenfalls umleiten nach ...abgewiesen.com oder wohin auch immer.
Dazu würde ich dann noch eine PHP-Datei schreiben, die Du über remote aufrufen kannst, die die IP-Adressen aus der Datenbank entfernt, deren Logzeitpunkt mehr als beispielsweise 25 Stunden zurückliegt, das heißt also du rufst diese Seite auf und löschst die alten IPs nebst zeitstempel automatisch durch diesen Aufruf. Dies kann man ggf. noch durch ein Passwort... schützen. Dann bleibt die Liste überschaubar klein, bei 1 Anfrage je sekunde wären das gerade mal 86400 IPs am Tag also 90000 in 25 Stunden. Über ne Tabelle mit 2-3 Spalten und 100.000 Einträgen reitet MySQL in sekundenbruchteilen bis wenigen Sekunden drüber, bei einer einfachen Abfrage, das ist also kein allzu langsamer Seitenaufbau.
Wenn es mehrere Bedingungen gibt, die Du checkst, empfielt es sich, keine Ausgabe zu machen, bevor Du die header-funktion aufrufst. sonst gibt das Probleme - Warnungen / Fehler.
Im Grunde fragst du mit diesen beiden Tricks schonmal ab, ob die Herkunftsseite stimmt und ob die IP schonmal in den letzten 24 Stunden drin war, 2 Bedingungen sind also erfüllt.
Mit ner darüberliegenden Seite könntest Du auch Benutzernamen und Passwort abfragen...
Dieser Beitrag wurde von Mondragor bearbeitet: 09. Oktober 2013 - 13:14
#7
geschrieben 09. Oktober 2013 - 13:17
also erstmal danke für deine mühe!
würde gerne wollen das "nur" personen die über google werbung auf meiner seite kommen drauf dürfen, würde das auch gehen? würde adsense werbung schalten und würde nur für diese kampagne den zutritt erlauben... das ist also eine art referrer?!
#8
geschrieben 09. Oktober 2013 - 14:34
Zitat (Croxxx69: 09. Oktober 2013 - 13:17)
also erstmal danke für deine mühe!
würde gerne wollen das "nur" personen die über google werbung auf meiner seite kommen drauf dürfen, würde das auch gehen? würde adsense werbung schalten und würde nur für diese kampagne den zutritt erlauben... das ist also eine art referrer?!
Nun surft jemand zu Hause rum, findet über die Werbung die Seite und findet die toll. Schreibt sich die Adresse auf oder merkt sie sich und will die Seite am nächsten Tag von der Firma aus aufrufen und kommt nicht mehr auf die Seite.
#9
geschrieben 09. Oktober 2013 - 15:02
kenn mich da leider nicht so aus, würde sowas in der art reichen?!:
if ($_SERVER[HTTP_REFERER]=="http://pruefung.bb") header("location:http://www.meine-domain.de");
#10
geschrieben 09. Oktober 2013 - 15:14
Zitat (Croxxx69: 09. Oktober 2013 - 15:02)
kenn mich da leider nicht so aus, würde sowas in der art reichen?!:
if ($_SERVER[HTTP_REFERER]=="http://pruefung.bb") header("location:http://www.meine-domain.de");
(unabhängig von der Richtigkeit der Syntax)
Damit käme jemand auf deine Seite, dann erfolgt die Prüfung und wenn die Bedingung wahr ist, wird er weitergeleitet auf deine Seite, dann erfolgt die Prüfung und wenn die Bedingung wahr ist, wird er weitergeleitet auf deine Seite, dann erfolgt die Prüfung und wenn die Bedingung wahr ist, wird er weitergeleitet auf deine Seite, dann erfolgt die Prüfung und wenn die Bedingung wahr ist, wird er weitergeleitet auf deine Seite, dann erfolgt die Prüfung…
oder aber diese Prüfung ist auf einer anderen Seite, die dann erst zu deiner Seite weiterleitet, dann käme man aber mit www.meine-domain.de direkt ohne Prüfung auf deine Seite.
Dieser Beitrag wurde von Holger_N bearbeitet: 09. Oktober 2013 - 15:15
#11
geschrieben 09. Oktober 2013 - 15:26
wenn nein dann nirgends (oder halt meinet wegen zu www.google.de)
#12
geschrieben 09. Oktober 2013 - 15:47
if ($_SERVER[HTTP_REFERER]=="http://pruefung.bb") {header("location:http://www.meine-domain.de");}
Auf irgendeiner Seite steht, dann muß man ja erstmal auf diese "irgendeine Seite" gehen, dass diese Bedingungen überhaupt geprüft wird. Ginge man dann gleich auf www.meine-domain.de würde ja gar nix geprüft werden.
#13
geschrieben 09. Oktober 2013 - 17:23
Vorher im übergeordneten Ordner die Abfragen machen, wenn diese erfüllt, session setzen, ansonsten umleiten nach Google. Hab ich einen Denkfehler?
Deine Seite checkt wie gesagt bestehende Session? wenn nicht, umleitung, ansonsten Darstellung Deiner Seite. Dies wiederum kann via AJAX ganz simpel oder via fopen, fread... und echo erfolgen... So würde die bestehende HTML, die Deine Seite beinhaltet als Datei eingelesen oder intern über Ajax aufgerufen und ausgegeben...
Alternativ könnte man per Fallunterscheidung einfach eine Rückmeldung geben, wie beispielsweise: "Sie waren in den letzten 24 Stunden schon hier" statt weiterzuleiten...
Dieser Beitrag wurde von Mondragor bearbeitet: 09. Oktober 2013 - 17:29
#14
geschrieben 09. Oktober 2013 - 22:13
Ansonsten: Cookie setzen und anhand dessen weiterbehandeln. Irgendwie mußt Du ja den Gegenüber identifizieren. Aber auch hier haben sich irgendwie in letzter Zeit die Regeln geändert; ich werd nicht behaupten, mich da mit der rechtlichen Seite besonders gut auszukennen. Tu ich nämlich nicht.
Ansonsten, klar; Du müßtest den Referrer abchecken. Aber im negativen Sinne: wenn der Referrer NICHT abc.de ist, soll X passieren; ansonsten dem User entsprechend erklären, wie er sich zu verhalten hat (oder Du leitest ihn weiter, oder sonstwas). Ansonsten müßtest Du noch Flags setzen, anhand derer Du prüfen müßtest, ob schon geprüft wurde... sonst bekommst Du die oben angeführte Endlosschleife und Dir geht der Provider an die Gurgel.
(Auch wenn ich davon ausgehe, daß das im genannten Beispiel nicht passieren wird... zumindest dann, wenn "302 Moved Temporarily" den Referrer umschreibt. Aber der Mensch soll ja sauber programmieren und sich nicht auf alle möglichen Eigenheiten und Ausnahmen von irgendeinem X-beliebigen Dritten verlassen.)
- Ach ja, nur so FYI. Eine Session nützt Dir hier nicht viel... es sei denn natürlich, Du sorgst dafür, daß sich der jeweilige Benutzer wieder in die bestehende Session einbucht (bzw einbuchen KANN). Das hieße dann aber wieder Cookie... oder Login, natürlich. Ansonsten macht ein neuer Besuch einfach eine neue Session auf und Du hast gar nix gekonnt.
Dieser Beitrag wurde von RalphS bearbeitet: 09. Oktober 2013 - 22:17
#15
geschrieben 09. Oktober 2013 - 22:36
Außerdem müßte man nicht in irgendwelchen Grenzbereichen arbeiten, wie der Speicherung irgendwelcher Userdaten wie IP oder sonstwas.