upgrade-insecure-requests ist eine Direktive der Content-Security-Policy (CSP), die den Browser anweist, alle HTTP-URLs einer Seite als HTTPS-URLs zu behandeln und die Anfragen automatisch hochzustufen — noch bevor sie ins Netzwerk gehen. Das HTML selbst bleibt dabei unverändert.
So funktioniert die Direktive
Der Server sendet den Header:
Content-Security-Policy: upgrade-insecure-requests
Der Browser wandelt daraufhin Ressourcen-URLs wie Bilder, Skripte, Stylesheets, iframes und WebSockets transparent um: http:// wird zu https://, ws:// zu wss://. Auch Navigations-Requests sind betroffen.
Warum das wichtig ist
Lädt eine HTTPS-Seite Ressourcen über HTTP nach, entsteht gemischter Inhalt (Mixed Content): Aktive Inhalte wie Skripte blockieren Browser standardmäßig, passive Inhalte erzeugen Warnungen. Die Direktive hebt diese HTTP-Anfragen im Voraus auf HTTPS an, sodass gar kein Mixed Content entsteht. Sie ist besonders beim Umzug einer Website von HTTP auf HTTPS hilfreich.
Grenzen und Zusammenspiel
- Existiert die HTTPS-Variante einer Ressource nicht (Fehler oder Zertifikatsproblem), schlägt das Laden fehl.
- Die Direktive wird vor
block-all-mixed-contentausgewertet — ist sie gesetzt, bewirktblock-all-mixed-contentnichts mehr. Beide Direktiven sollten nicht gleichzeitig gesetzt werden. - Die Direktive kann auch per
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">gesetzt werden.
Verwandte Grundlagen: Content-Security-Policy-Reporting, CORS, Browser.