HOWTO:Apache2 HTTP-Method Blocking

Aus LUGBB

Wechseln zu: Navigation, Suche

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.

Persönliche Werkzeuge
Dokumente
Allgemeines