S
skymaster01
wie blockt man IP adressen welche mehr als 1 anfrage innerhalb 0,5 sekunden senden. wenn man HTACCESS und PHP zur verfügung hat. MYSQL darf da nicht genutzt werden, das führt zur überlastung das habe ich schon getestet
Die Sache hat folgenden Hintergrund:
ein cookie wird bei jedem aufruf gesetzt in dem cookie steht welche datei aufgerufen wurde und wann.
bei jedem aufruf wird geprüft ob der user die selbe seite aufruft wie zuvor, wenn nein dann ist alles ok, wenn ja dann gehts unten weiter.
der server schreibt in die DB das der user sich neu einloggen muss und bis dahin ignoriert wird.
alle seine cookies werden zerstört, aber falls er ein "spammer"
ist und weiterhin spammt, dann kann ich die nicht zerstören da er gar nicht auf die antwort von meinem server wartet und da greift der eintrag in die DB von weiter oben.
da die alten cookies noch 2 sekunden lang den typen abhalten werden, ohne das der server auf seine anfragen reagiert (da die cookies so eingestellt sind, das alles durchgelassen wird wenn der letzte aufruf mehr als 2 sekunden zurück lag), gibt diese zeit der MySQL DB genug vorlauf um den eintrag
vorzunehmen (siehe oben).
zusätzlich zu den cookies wird geprüft ob der user berechtigt ist aufrufe zu machen oder ob er sich davor neu einloggen muss, dieser schutz hält ewig, da er sich eben neu einloggen muss um den eintrag aus der DB zu entfernen.
diese variante hört sich komplexer an, aber sie ist effektiver, denn somit werden auch die user blockiert welche die eigenen cookies manipulieren oder die IP verbergen. zusätzlich ist in der routine noch ein passwortschutz eingebaut, so dass bei jedem zugriff geprüft wird ob der user auch wirklich authorisiert ist und alle diese funktionen lassen sich dort gut
unterbringen.
hier die zusammenfassung:
1.)prüfung
1.1)auslesen aus der DB ob der user "sauber" ist
1.2)wenn die zuletzt aufgerufene seite nicht der jetzt aufgerufenen seite entspricht-> break;
1.3)wenn die zeit nach dem letztem aufruf der seite grösser als 2 sekunden ist, dann->break;
else
2.)cookies zerstören, eintrag in die DB das er zu ignorieren ist
ich hoffe das ist einigermassen verständlich erklärt
mit HTACCESS dachte ich mir, dass man dem server sagen kann, das er jede IP blockt welche innerhalb von z.B. 0,5 sekunden anfragen stellt, das nennt man "flooding-protection" da der Apachie server ja alles mitloggt und somit problemlos nachvollziehen könnte wer zuletzt zugegriffen hat und wie oft
ich hoffe ihr versteht was ich meine
Die Sache hat folgenden Hintergrund:
ein cookie wird bei jedem aufruf gesetzt in dem cookie steht welche datei aufgerufen wurde und wann.
bei jedem aufruf wird geprüft ob der user die selbe seite aufruft wie zuvor, wenn nein dann ist alles ok, wenn ja dann gehts unten weiter.
der server schreibt in die DB das der user sich neu einloggen muss und bis dahin ignoriert wird.
alle seine cookies werden zerstört, aber falls er ein "spammer"
ist und weiterhin spammt, dann kann ich die nicht zerstören da er gar nicht auf die antwort von meinem server wartet und da greift der eintrag in die DB von weiter oben.
da die alten cookies noch 2 sekunden lang den typen abhalten werden, ohne das der server auf seine anfragen reagiert (da die cookies so eingestellt sind, das alles durchgelassen wird wenn der letzte aufruf mehr als 2 sekunden zurück lag), gibt diese zeit der MySQL DB genug vorlauf um den eintrag
vorzunehmen (siehe oben).
zusätzlich zu den cookies wird geprüft ob der user berechtigt ist aufrufe zu machen oder ob er sich davor neu einloggen muss, dieser schutz hält ewig, da er sich eben neu einloggen muss um den eintrag aus der DB zu entfernen.
diese variante hört sich komplexer an, aber sie ist effektiver, denn somit werden auch die user blockiert welche die eigenen cookies manipulieren oder die IP verbergen. zusätzlich ist in der routine noch ein passwortschutz eingebaut, so dass bei jedem zugriff geprüft wird ob der user auch wirklich authorisiert ist und alle diese funktionen lassen sich dort gut
unterbringen.
hier die zusammenfassung:
1.)prüfung
1.1)auslesen aus der DB ob der user "sauber" ist
1.2)wenn die zuletzt aufgerufene seite nicht der jetzt aufgerufenen seite entspricht-> break;
1.3)wenn die zeit nach dem letztem aufruf der seite grösser als 2 sekunden ist, dann->break;
else
2.)cookies zerstören, eintrag in die DB das er zu ignorieren ist
ich hoffe das ist einigermassen verständlich erklärt
mit HTACCESS dachte ich mir, dass man dem server sagen kann, das er jede IP blockt welche innerhalb von z.B. 0,5 sekunden anfragen stellt, das nennt man "flooding-protection" da der Apachie server ja alles mitloggt und somit problemlos nachvollziehen könnte wer zuletzt zugegriffen hat und wie oft
ich hoffe ihr versteht was ich meine