Hallo SSF Gemeinde
Ich habe ein Problem mit mod_rewrite, sehe aber vermutlich den Wald vor lauter Bäumen nicht. Leider habe ich auch noch nichts hier im Forum bzw. in der Apache Dokumentation zum meinem Problem finden können.
Ursprüngliches Problem:
Ich hatte vor fast 2 Monaten festgestellt, das immer wieder (Sinnlos-)Requests mit derselben Session ID von recht ominösen IP Adressen gegen ein von mir mit betreutes Forum abgesetzt werden. Die IP Adressen stufe ich deshalb als ominös ein, da es ich um Adressen aus Russland, China, Niederlanden und diversen anderen Ländern handelt, wo ich persönlich SPAM Netzwerke dahinter vermute. Außerdem wurden die ca. 20000+ Requests (allein in einem Monat) alle mit denselben Parametern abgesetzt. Unter anderem wurde auch immer dieselbe Session ID verwendet. Und das war mein Ansatz. Anstatt jede der IP Adressen einzeln per mod_rewrite oder auch per Deny zu blocken, habe ich eine Rewrite Regel in die .htaccess Datei eingefügt, die auf diese Session ID im QUERY_STRING prüft und bei vorhandensein einfach ein Forbidden zurückgibt. Das Funktionieren dieser Regel habe ich auch sehr schön im Access Log des Apachen verfolgen können, da die Requests alle mit einem 403 Status beantwortet wurden. Das funktioniert auch nach wir vor. Diverse Tests mit wget waren ebenso erfolgreich.
Neues Problem:
Waren es ursprünglich ausschließlich GET Requests, kommen mittlerweile von einigen der bereits bekannten IP Adressen POST Requests, wieder mit denselben Parametern. Erstmal eigentlich nichts schlimmes. Leider musste ich jetzt feststellen, das die POST Requests aber nicht abgeblockt werden, sondern brav mit einem 200 Status beantwortet werden. Leider kann ich das RewriteLog nicht einschalten, da das Forum auf Webspace liegt, ich also nicht an die vhost Definition ran komme wo ich das Logging einschalten könnte.
Seht ihr einen Fehler in der angewandten Regel (s.u.)?
Werden GET und POST Request von mod_rewrite unterschiedlich behandelt?
Umgebung:
Debian 5
Apache 2.2.x
.htaccess Datei:
Ausschnitt Logdatei, Wirksamkeit der Regel bei GET:
Ausschnitt Logdatei, Unwirksamkeit der Regel bei POST:
Sollten noch wichtige Informationen Informationen fehlen, bitte sagen.
Danke für eure Anregungen/Tips.
Ich habe ein Problem mit mod_rewrite, sehe aber vermutlich den Wald vor lauter Bäumen nicht. Leider habe ich auch noch nichts hier im Forum bzw. in der Apache Dokumentation zum meinem Problem finden können.
Ursprüngliches Problem:
Ich hatte vor fast 2 Monaten festgestellt, das immer wieder (Sinnlos-)Requests mit derselben Session ID von recht ominösen IP Adressen gegen ein von mir mit betreutes Forum abgesetzt werden. Die IP Adressen stufe ich deshalb als ominös ein, da es ich um Adressen aus Russland, China, Niederlanden und diversen anderen Ländern handelt, wo ich persönlich SPAM Netzwerke dahinter vermute. Außerdem wurden die ca. 20000+ Requests (allein in einem Monat) alle mit denselben Parametern abgesetzt. Unter anderem wurde auch immer dieselbe Session ID verwendet. Und das war mein Ansatz. Anstatt jede der IP Adressen einzeln per mod_rewrite oder auch per Deny zu blocken, habe ich eine Rewrite Regel in die .htaccess Datei eingefügt, die auf diese Session ID im QUERY_STRING prüft und bei vorhandensein einfach ein Forbidden zurückgibt. Das Funktionieren dieser Regel habe ich auch sehr schön im Access Log des Apachen verfolgen können, da die Requests alle mit einem 403 Status beantwortet wurden. Das funktioniert auch nach wir vor. Diverse Tests mit wget waren ebenso erfolgreich.
Neues Problem:
Waren es ursprünglich ausschließlich GET Requests, kommen mittlerweile von einigen der bereits bekannten IP Adressen POST Requests, wieder mit denselben Parametern. Erstmal eigentlich nichts schlimmes. Leider musste ich jetzt feststellen, das die POST Requests aber nicht abgeblockt werden, sondern brav mit einem 200 Status beantwortet werden. Leider kann ich das RewriteLog nicht einschalten, da das Forum auf Webspace liegt, ich also nicht an die vhost Definition ran komme wo ich das Logging einschalten könnte.
Seht ihr einen Fehler in der angewandten Regel (s.u.)?
Werden GET und POST Request von mod_rewrite unterschiedlich behandelt?
Umgebung:
Debian 5
Apache 2.2.x
.htaccess Datei:
Code:
RewriteEngine ON
#force use of www.
RewriteCond %{HTTP_HOST} !^www\.irgendeinforum\.com [NC]
RewriteRule ^(.*) http://www.irgendeinforum.com/$1 [R=301]
#block bad requests
RewriteCond %{QUERY_STRING} .*sid=138ba379397ca680ba72c0b54f59da27.* [NC]
RewriteRule ^.* - [F,L]
Ausschnitt Logdatei, Wirksamkeit der Regel bei GET:
Code:
...
89.xxx.xxx.xxx - - [01/Nov/2009:01:27:47 +0100] "GET /irgendeine.php?action=kommentar_abgeben&id=17&sid=138ba379397ca680ba72c0b54f59da27 HTTP/1.1" 403 214 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
...
Ausschnitt Logdatei, Unwirksamkeit der Regel bei POST:
Code:
...
94.xxx.xxx.xxx - - [12/Oct/2009:01:37:15 +0200] "POST /irgendeine.php HTTP/1.1" 200 13082 "http://www.irgendeinforum.com/irgendeine.php?action=kommentar_abgeben&id=17&sid=138ba379397ca680ba72c0b54f59da27" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
...
Sollten noch wichtige Informationen Informationen fehlen, bitte sagen.
Danke für eure Anregungen/Tips.