xat / contao-rpc

RPC Framework for Contao
2 stars 0 forks source link

IPs automatisch blacklisten #18

Open xat opened 11 years ago

xat commented 11 years ago

Wie im IRC besprochen muessen wir uns noch gedanken machen wie man User blockiert die sich zum beispiel zuoft falsch authentifizieren.

mediabakery commented 11 years ago

lass da auch einen log einbauen.

mediabakery commented 11 years ago

Wenn APC zur Verfügung steht (_extension_loaded('apc') && iniget('apc.enabled')) wird bei jeden falschen Authentifizierungsversuch der unter dem ip-hash hinterlegten wert eins hochgezählt _apcinc. Sollte kein Wert hinterlegt sein wird dieser mit einer Laufzeit X angelegt. (Wurde die maximale Anzahl der Versuche überschritten wird die Laufzeit erneut auf X gesetzt, damit die Sperre der IP für diesen Zeitraum besteht.)

Wenn APC nicht zur Verfügung steht wird auf Dateilösung zurückgegriffen. In einer Datei mit dem Dateinamen des IP hashs werden dann die fehlerhaften IP Authentifizierungsversuche hochgezählt. Wurde über eine IP zu oft versucht sich zu authentifizieren wird diese Datei in eine zweiten Ordner verschoben. Der erste Ordner wird durch die Systemwartung alle Xh komplett geleert. Im zweiten Ordner schaut die Systemwartung bei jeder Datei, ob das Änderungsdatum bereits Xh alt ist. Ist dies der Fall wird diese Datei gelöscht. Zu Beginn des Authentifizierungsversuchs wird geschaut ob der IP-hash nicht als Datei im zweiten Ordner existiert.

Wenn die Authentifizierung erfolgreich war wird der Eintrag in beiden Fällen (APC, File) gelöscht.

Laufzeit X und Anzahl der maximalen Versuche kann pro Konfiguration definiert werden.

Ein Backend Modul ermöglicht es durch Angabe einer IP die Sperre aufzuheben. Außerdem ist hier Ersichtlich, wie viele IPs gerade gesperrt sind.

xat commented 11 years ago

Ok, nur muss das ganze global in den TL_SETTINGS einstellbar sein und nicht in einer Konfiguration. Weil bei einem RPC Batch request kann ja jede RPC Methode eine andere Konfiguration haben und man koennte nicht bestimmen von welcher Konfiguration dann die Settings genommen werden sollen. Auch muesste das ganze deaktivierbar sein, falls das jemand nicht benoetigt.

mediabakery commented 11 years ago

japp da stimme ich dir zu