HTTP-Header Zeilen bei GET-Requests

HTTP-Header Zeilen bei GET-Requests

Marc Ruef
von Marc Ruef
Lesezeit: 8 Minuten

In den vorangegangenen Beiträgen HTTP-Header erwartete Anzahl Zeilen und HTTP-Header erwartete Grösse von GET-Requests wurden statistische Beobachtungen angestellt, um das erwartete und zugelassene Verhalten von Webbrowser-Implementierungen zu ermitteln.

Die Analysen wurden weitergetragen, indem die typischerweise auftretenden Header-Zeilen bei GET-Anfragen untersucht wurden. Dies ist zum Beispiel bei der Entwicklung eines hochsicheren Webservers oder bei der strikten Konfiguration eines Webproxies von Nutzen. Nachfolgende Grafik illustriert die 20 populärsten Header-Zeilen, wie sie von 300 untersuchten Webbrowsern verschickt werden.

HTTP GET Header Zeilen

Es ist zu sehen, dass der meistbenutzte Header User-Agent (14.67%) darstellt, direkt gefolgt von Host (14.08%). Das Ausbleiben der Host-Zeilen ist vor allem bei älteren Implementierungen zu beobachten, die ausschliesslich HTTP/0.9 oder HTTP/1.0 unterstützen – Bei HTTP/1.1 ist diese Zeile erforderlich (RFC 2616, Absatz 14.23, Host).

Danach folgen Accept (12.65%) und Connection (11.22%). Die drei drauf folgenden Header lehnen sich an und sind Accept-Language (9.65%), Accept-Encoding (9.30%) und Accept-Charset (6.69%). Erst an achter Stelle folgt die Referer-Zeile (5.51%).

Pos Header-Zeile Auftreten Quelle Funktion
1. User-Agent 14.67% RFC 1945, Absatz 10.15 Name des Clients
2. Host 14.08% RFC 2616, Absatz 14.23 Hostname des Servers
3. Accept 12.65% RFC 2616, Absatz 14.1 Akzeptierte Medientypen
4. Connection 11.23% RFC 2616, Absatz 14.10 Hinweise für Verbindungen
5. Accept-Language 9.65% RFC 2616, Absatz 14.4 Akzeptierte Sprachen
6. Accept-Encoding 9.31% RFC 2616, Absatz 14.3 Akzeptierte Encodierungen
7. Accept-Charset 6.70% RFC 2616, Absatz 14.2 Akzeptierter Zeichensatz
8. Referer 5.51% RFC 1945, Absatz 10.13 Gefolgter Link
9. Keep-Alive 2.81% RFC 2068, Absatz 19.7.1.1 Lebensdauer der Verbindung
10. Cache-Control 2.51% RFC 2616, Absatz 14.9 Cache-Verhalten
11. Via 1.67% RFC 2616, Absatz 14.45 Proxy-Elemente
12. X-Forwarded-For 1.13% Weiterleitung für wen
13. Pragma 1.08% RFC 2616, Absatz 14.32 Verhalten für Proxy-Elemente
14. UA-CPU 0.84% (Beispiele) CPU-Architektur des Clients
15. Cookie 0.74% RFC 2965 HTTP-Cookies
16. From 0.44% RFC 1945, Absatz 10.8 Email-Adresse des Benutzers
17. If-Modified-Since 0.39% RFC 1945, Absatz 10.9 Neue Abfrage bei Änderungen
18. X-Wap-Profile 0.39% WAP-Profil
19. X-BlueCoat-Via 0.30% Blue Coat Forum 1550 ID der Blue Coat Proxies
20. Range 0.25% RFC 2616, Absatz 14.35 Byte-Struktur
21. Client-IP 0.20% IP-Adresse des Clients
22. Proxy-Connection 0.20% Proprietärer Connection-Header
23. Icy-MetaData 0.15% (Beschreibung) Shoutcast Metadata Protocol
24. UA-Color 0.15% RFC 4229, Absatz 2.2.12 Farbtiefe des Clients
25. UA-Pixels 0.15% RFC 4229, Absatz 2.2.14 Auflösung des Clients
26. X-Apple-Store-Front 0.15% Apple iTunes Storefront-ID
27. X-Apple-TZ 0.15% Apple iTunes
28. YahooRemoteIP 0.15% IP-Adresse des Yahoo Mail-Nutzers
29. Clientid 0.10%
30. Extension 0.10%

Die gesamte Auswertung zeigt auf, dass es dennoch relativ schwierig ist, die erforderlichen, typischen und zugelassenen Header-Zeilen mit absoluter Genauigkeit zu determinieren. Zu viele Abweichungen zeigen die einzelnen Browser-Implementierungen. Spätestens wenn dann mit optionalen und proprietären X-Header Zeilen aufgewartet wird (der erste folgt als X-Forwarded-For auf Position 12 mit 1.13%). Ein intelligentes Filtern von Header-Zeilen ist aufgrund dieses Wildwuchses leider nicht in effizienter Weise umsetzbar.

Hinzu kommt das Problem, dass die unterschiedlichen Webbrowser nicht immer die vorgesehene Gross-/Kleinschreibung der Header-Zeilen einhalten. Normalerweise werden die Anfangsbuchstaben gross und alles andere klein geschrieben (z.B. User-Agent oder Accept). Einige Produkte pflegen jedoch zum Beispiel alles klein zu schreiben (z.B. user-agent, vorzugsweise durch Sony-Ericsson Handies) oder nur den ersten Buchstaben gross zu schreiben (z.B. Shelob 1.0 als User-agent). Eine Betrachtung dieser Finessen ist angedacht und wird voraussichtlich in einem zukünftigen Beitrag diskutiert werden.

Über den Autor

Marc Ruef

Marc Ruef ist seit Ende der 1990er Jahre im Cybersecurity-Bereich aktiv. Er hat vor allem im deutschsprachigen Raum aufgrund der Vielzahl durch ihn veröffentlichten Fachpublikationen und Bücher – dazu gehört besonders Die Kunst des Penetration Testing – Bekanntheit erlangt. Er ist Dozent an verschiedenen Hochschulen, darunter ETH, HWZ, HSLU und IKF. (ORCID 0000-0002-1328-6357)

Links

Sie wollen die Sicherheit Ihrer Firewall prüfen?

Unsere Spezialisten kontaktieren Sie gern!

×
Cyber Threat Intelligence

Cyber Threat Intelligence

Marc Ruef

3D Printing

3D Printing

Marc Ruef

Contact Tracing App DP3T

Contact Tracing App DP3T

Marc Ruef

Sie wollen mehr?

Weitere Artikel im Archiv

Sie brauchen Unterstützung bei einem solchen Projekt?

Unsere Spezialisten kontaktieren Sie gern!

Sie wollen mehr?

Weitere Artikel im Archiv