Skip to main contentSkip to footer

Security-Header-Check

Lesen Sie die HTTP-Security Headers aus, die eine Website tatsächlich sendet, und finden Sie heraus, welche davon fehlen, Schwachstellen aufweisen oder sich stillschweigend gegenseitig aufheben. Kostenlos, ohne Registrierung.

Reads the HTTP response headers of a page and explains what each security header does, which ones are missing and which ones are set too loosely to help. Enter a full URL to check a specific page.

HTTP security headers are instructions a web server sends with every response to switch on protections the browser already has: which sources may execute script, whether the site may be loaded over plain HTTP, and whether another site may frame it. The reportedIP Security Header Check reads those headers, weighs each one by what it actually prevents, and names the concrete change for every gap.

Funktionsweise und Grenzen dieses Tools

The address is fetched with a normal GET request, following up to three redirects, and the response headers are read. GET rather than HEAD, because a fair number of servers, reverse proxies and firewalls answer HEAD from a different code path with a shorter header set, which would report headers as missing that a real browser does receive. The check is run from this server, so a site that varies its headers by country, by user agent or by login state may answer differently to you.

The score is weighted, not a count. Content-Security-Policy and Strict-Transport-Security carry the most weight because they decide whether injected script runs and whether a request can be forced back to plain HTTP. Referrer-Policy and Permissions-Policy limit leakage and weigh less. COOP, COEP and CORP carry no weight at all: they exist to isolate pages that need high-resolution timers, and a site that does not need them is not less secure for leaving them out.

X-Frame-Options is not reported as missing when the Content-Security-Policy sets frame-ancestors. frame-ancestors is the specified successor, every current browser honours it, and it can name individual permitted origins, which X-Frame-Options never could. A Content-Security-Policy sent only in Report-Only form is treated as what it is: a measuring instrument that records violations and blocks nothing.

Only one page is read. Headers are usually set at the server or proxy level and therefore apply everywhere, but an application can add or drop them per route, so checking the page that matters, the login or the checkout, is worth more than checking the front page. The tool reads headers only and never inspects the page content, so it cannot tell whether a policy is actually wide enough for the site to work.

Warum eine Header-Liste keine Bewertung darstellt

Die meisten Header-Prüfprogramme liefern Ihnen eine Checkliste und eine Bewertung. Dabei wird ein fehlender „Permissions-Policy“-Header als ebenso großes Problem behandelt wie ein fehlender „Content-Security-Policy“-Header, was jedoch nicht der Fall ist. Der eine schränkt die Möglichkeiten einer Browser-API ein; der andere entscheidet darüber, ob ein Cross-Site-Script ausgeführt wird oder nicht.

Diese Prüfung bewertet jeden Header danach, was er verhindert. Die „Content-Security-Policy“ zählt am meisten, gefolgt von HSTS, dem Framing-Schutz und dem Content-Type-Sniffing. Header zur domänenübergreifenden Isolierung werden zwar gemeldet, aber mit null Punkten bewertet, da eine Website, die diese nie benötigt hat, dafür keine Punkte verlieren sollte.

Wo eine Checkliste den Fehler macht

„frame-ancestors“ ersetzt „X-Frame-Options“.
Eine Website mit einer ordnungsgemäßen Content-Security-Policy benötigt den älteren Header nicht, und die Forderung nach beidem ist ein Ratschlag aus der Zeit vor zehn Jahren. Eine rein meldende Richtlinie zählt nicht, da Browser diese nicht durchsetzen.

„max-age=0“ ist schlechter als gar kein HSTS.
Es weist den Browser aktiv an, zu vergessen, dass die Website jemals ausschließlich über HTTPS erreichbar war. Eine Checkliste sieht einen vorhandenen Header und hakt das Kästchen ab.

HSTS über einfaches HTTP hat keinerlei Bedeutung.
Browser ignorieren es dort, daher lässt die Prüfung es bei der Berechnung außer Acht, anstatt dafür Punkte abzuziehen.

Was dabei berücksichtigt wird

Die Seite wird mit einer normalen GET-Anfrage abgerufen, nicht mit HEAD, da manche Server die beiden Anfragen unterschiedlich beantworten und nur die Header, die ein Browser sieht, von Bedeutung sind. Es werden ausschließlich die Antwort-Header überprüft; der Seiteninhalt wird nicht gespeichert.