localhorst: HEAD & POST in meiner .htaccess

Beitrag lesen

Hallo einsiedler,
hallo Alle,

der Wunsch, nur erlaubte Requests zuzulassen, ist nachvollziehbar.

Allerdings sind Head-, Get- und Postrequests in einem Dialogsystem zunächst nichts Böses, sie sind sogar erforderlich, um die gestellte Aufgabe zu lösen.

Wenn allerdings Postrequests nur erlaubt sind, wenn der Client autorisiert ist, dann solltest Du nicht authentifizierte Clients, nicht autorisierte Posts (also solche ohne gültiges "Login") im Skript mit einem passenden Responsecode beantworten. Hier käme 403 (forbidden) oder 406 (not acceptable) in Frage. Hingegen wäre 401 (unauthorized) in einem System, dass mit Token ("Sessioncookie") arbeitet, kontraproduktiv, denn das würde dem Client suggerieren, dass er es mit Benutzername und Passwort noch (mehrmals) über Basic Authentication versuchen soll.

Die .htaccess-Dateien sind bei Token-Athentifizierung ("Session-Cookie") der falsche Weg. Die eignen sich eventuell bei Basic Auth.

Wenn Du nun den passenden Responsecode gesendet hast (ggf. mit eigenem Responsebody), dann sollte der im Log auftauchen.

Das Log kannst Du nun mit Überwachungssoftware beobachten, z.B. fail2ban. Wenn dort für HTTP/S-Zugriffe eine passende Regel hinterlegt ist, könnten unerwünschte Posts von derselben IP z.B. nach 10 Fehlversuchen für eine (kurze) Zeit geblockt werden. Durch ein weiteres Filter für fail2ban kann man außerdem noch eine weitere, längere Sperre (auch für sehr lange Zeit) einleiten lassen, wenn die kurze Sperrung innerhalb eines bestimmten Intervalls öfter zugeschlagen hat. Darüber kann man sich auch per E-Mail benachrichtigen lassen und dann permanente Maßnahmen vornehmen.

Das funktioniert, einmal vernünftig eingerichtet, über Jahre automatisch.

LG + Gesundheit
Localhorst