mod_extract_forwarded: Gut oder doch nicht?
von Dennis Wronka
am 14.03.09 um 09:31 (766 Hits)
Heute hab ich mal im Fedora-Repository rumgeschaut was an so an Apache-Modulen gibt. Grund war eigentlich dass ich mir mal mod_mono anschauen wollte, hab dann aber auch mal einen Blick auf die Fuelle von verfuegbaren Modulen geworfen.
Ein Modul ist mir dabei aufgefallen: mod_extract_forwarded.
Was nun dieses Modul macht ist einfach:
Eine Anfrage die von einem Proxy kommt und den X-Forwarded-For-Header gesetzt hat wird so manipuliert dass die dort angezeigte IP als normale Quell-IP im Header steht, anstelle der Proxy-IP.
Im ersten Moment koennte man nun denken: Ist ja toll dass es sowas gibt.
Ich hab aber mal ein paar Gedanken mehr darauf verwandt und bin jetzt ehrlich gesagt der Meinung dass dieses Modul vollkommen ueberfluessig ist.
Wer nun wirklich so scharf darauf ist zu wissen woher die Anfrage denn kommt soll doch im Code dafuer Sorge tragen.
Sich darauf zu verlassen dass irgendein Modul dies schon regelt ist genauso fahrlaessig wie sich beim PHP-Coding darauf zu verlassen dass die Magic Quotes aktiv sind.
Ich hab das Modul jetzt nicht ausprobiert, aber ich koennte mir gut vorstellen dass es den eigentlichen IP-Header durch X-Forwarded-For ueberschreibt und dann X-Forwarded-For in die Tonne kippt.
Und gerade dies finde ich eigentlich sogar am schlimmsten. Denn dadurch wird der Applikation, und dem Betreiber der Seite, doch nur vorgegaukelt alle Welt wuerde sich direkt verbinden und es gaebe keine Proxies.
Persoenlich wuerde ich es bevorzugen, waere ich denn so scharf auf die IPs der User, ein paar Zeilen Code mehr zu schreiben und weiterhin die Moeglichkeit zu haben zu wissen dass ein Proxy im Spiel war als diese Moeglichkeit nicht zu haben und mich darauf zu verlassen dass mod_extract_forwarded verfuegbar ist und mir schon die richtige IP liefern wird.
Und mal ehrlich, diese paar Zeilen bringen doch wohl niemanden um, oder?
Und Freunde dieser kryptischen Kurzschreibweise mit ? : (an den Schrott werd ich mich wohl nie gewoehnen) koennen dass sogar in einer Zeile regeln.PHP-Code:if (!empty($_SERVER['X_FORWARDED_FOR']))
{
$clientip=$_SERVER['X_FORWARDED_FOR'];
}
else
{
$clientip=$_SERVER['REMOTE_ADDR'];
}
Also mal ehrlich? Fallen irgendwem hier gute Gruende fuer die Nutzung von mod_extract_forwarded ein?






