Standardmäßig antwortet Apache 2.0.52 auf jede HTTP TRACE-Anforderung, die empfangen wird. Dies ist ein potenzielles Sicherheitsproblem, da bestimmte Arten von XSS-Angriffen zugelassen werden können. Weitere Informationen finden Sie unter http://www.apacheweek.com/issues/03-01-24#newsDeaktivieren der TRACE-Anforderungsmethode unter Apache/2.0.52
Ich versuche, TRACE-Anforderungen zu deaktivieren, indem ich die Anweisungen befolge, die auf der oben verlinkten Seite angezeigt werden. Ich fügte hinzu, die folgenden Zeilen Code zu meiner http.conf Datei und neu gestartet Apache:
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule .* - [F]
Allerdings, wenn ich eine TRACE Anfrage per Web-Server senden, wie es scheint, die Rewrite-Regeln zu ignorieren und reagiert, als ob TRACE Anforderungen wurden weiterhin aktiviert.
Zum Beispiel:
[[email protected] ~]$ telnet XXXX.com 80
Trying XXXX...
Connected to XXXX.com (XXXX).
Escape character is '^]'.
TRACE/HTTP/1.0
X-Test: foobar
HTTP/1.1 200 OK
Date: Sat, 11 Jul 2009 17:33:41 GMT
Server: Apache/2.0.52 (Red Hat)
Connection: close
Content-Type: message/http
TRACE/HTTP/1.0
X-Test: foobar
Connection closed by foreign host.
Der Server mit 403 verbotenen reagieren soll. Stattdessen gibt es meine Anfrage mit 200 OK zurück.
Als Test änderte ich die RewriteCond zu% {REQUEST_METHOD}^
, wenn ich dies tun, Apache reagiert korrekt auf alle GET-Anfragen mit 403 Forbidden. Aber wenn ich GET zurück in TRACE ändere, lassen sich TRACE-Anfragen weiterhin durch.
Wie kann ich Apache dazu bringen, nicht mehr auf TRACE-Anfragen zu antworten?
Apache 2.0.52 unterstützt die TraceEnable-Anweisung nicht –