HTTP-Header Zeilen bei GET-Requests

HTTP-Header Zeilen bei GET-Requests

Marc Ruef
by Marc Ruef
time to read: 8 minutes

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.

About the Author

Marc Ruef

Marc Ruef has been working in information security since the late 1990s. He is well-known for his many publications and books. The last one called The Art of Penetration Testing is discussing security testing in detail. He is a lecturer at several faculties, like ETH, HWZ, HSLU and IKF. (ORCID 0000-0002-1328-6357)

Links

You want to test the security of your firewall?

Our experts will get in contact with you!

×
Specific Criticism of CVSS4

Specific Criticism of CVSS4

Marc Ruef

scip Cybersecurity Forecast

scip Cybersecurity Forecast

Marc Ruef

Voice Authentication

Voice Authentication

Marc Ruef

Bug Bounty

Bug Bounty

Marc Ruef

You want more?

Further articles available here

You need support in such a project?

Our experts will get in contact with you!

You want more?

Further articles available here