HOWTO:Apache2 HTTP-Method Blocking
Aus LUGBB
Inhaltsverzeichnis |
Apache HTTP-Method Blocking
Allgemeines
Das HTTP-Protokoll kennt verschiedene Methoden, wovon die bekanntesten wohl GET, POST und HEAD sind. Weniger bekannt sind TRACE und die Methoden DELETE und PUT sowie den erweiterten Methoden durch WebDAV.
Besonders TRACE gefaehrdet die Besucher durch eine ausnutzbare Luecke fuer CrossSideScription (XSS). Cookies koennen fuer bestimmte Domains freigeschalten werden, andere Domains haben auf diese Cookies keinen Zugriff. Durch TRACE kann dies umgangen werden. TRACE schickt den HTTP-Header der Anfrage unmodifiziert zurueck, da allerdings Cookies im HTTP-Header untergebracht werden, koennen so Cookies ueber JavaScript ausgelesen werden.
Es gibt hierbei zwei Moeglichkeiten fuer die blockierung unerwuenschter Anfragen:
- Whitelist, bei der alle gewuenschten HTTP-Methoden auflistet und alle andern blockiert
- Blacklist, die alle aufgelisteten HTTP-Methoden blockiert
Achtung: Diese Listen benoetigen das mod_rewrite des Apache-Webservers.
Whitelist
RewriteEngine On
RewriteCond %{REQUEST_METHOD} !^(GET|HEAD|POST)$
RewriteRule .* - [F]
Dieser Regelsatz blockiert alle Anfragen ausser GET, HEAD und POST und kann beliebig erweitert werden.
Blacklist
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(TRACE|DELETE|PUT)$
RewriteRule .* - [F]
Hierbei werden die HTTP-Methoden TRACE, DELETE und PUT vom Server blockiert und ist wiederrum beliebig erweiterbar.

