HTTP CSP upgrade-insecure-requests Directive

Die Content-Security-Policy upgrade-insecure-requests Direktive erzwingt HTTPS durch automatisches Upgrade aller HTTP-Requests zu HTTPS-Äquivalenten. Sie verhindert Mixed-Content-Warnings, Man-in-the-Middle-Angriffe und ermöglicht sichere Migration von HTTP zu HTTPS ohne Code-Änderungen.

Typ

CSP Direktive ohne Werte

Syntax

Die Direktive akzeptiert keine Parameter und wirkt als Boolean-Flag.

http
Content-Security-Policy: upgrade-insecure-requests
Content-Security-Policy: upgrade-insecure-requests; default-src https:

Direktiven

Die upgrade-insecure-requests Direktive ist ein einfaches Flag ohne weitere Optionen.

upgrade-insecure-requests
Aktiviert automatisches HTTP-to-HTTPS-Upgrade für alle Requests von der Seite. Keine zusätzlichen Werte benötigt.

Beispiele

Nachfolgend finden Sie praktische Anwendungsbeispiele für die upgrade-insecure-requests Direktive.

Beispiel 1 Automatisches HTTPS-Upgrade für Legacy-Code

http
HTTP/1.1 200 OK
Content-Security-Policy: upgrade-insecure-requests

<!DOCTYPE html>
<html>
<head>
  <script src="http://cdn.example.com/jquery.js"></script>
  <!-- Automatisch upgraded zu https://cdn.example.com/jquery.js -->

  <img src="http://images.example.com/logo.png">
  <!-- Automatisch upgraded zu https://images.example.com/logo.png -->
</head>
<body>
  <form action="http://api.example.com/submit" method="POST">
    <!-- Automatisch upgraded zu https://api.example.com/submit -->
    <button type="submit">Submit</button>
  </form>
</body>
</html>

Beispiel 2 Mixed-Content Prevention

http
Content-Security-Policy: upgrade-insecure-requests; block-all-mixed-content

<!-- HTTPS-Seite mit Legacy-HTTP-Ressourcen -->
<div class="dashboard">
  <iframe src="http://widgets.example.com/chart"></iframe>
  <!-- Upgraded zu HTTPS, blockiert falls HTTPS nicht verfügbar -->
</div>

<style>
.background {
  background-image: url('http://cdn.example.com/bg.jpg');
  /* Upgraded zu HTTPS automatisch */
}
</style>

Beispiel 3 API Migration zu HTTPS

http
Content-Security-Policy: upgrade-insecure-requests

<!-- SPA mit API-Calls -->
<script>
async function fetchData() {
  // Legacy HTTP-URL im Code
  const response = await fetch('http://api.example.com/v1/data');
  // Browser upgraded automatisch zu https://api.example.com/v1/data

  return response.json();
}
</script>

Ermöglicht schrittweise HTTPS-Migration ohne Code-Rewrites.

HTTPS Upgrade Flow

CSP upgrade-insecure-requests erzwingt HTTPS-Migration

Vorteile für die Systemarchitektur

  • Mixed-Content-Eliminierung: Verhindert automatisch alle Mixed-Content-Warnings durch Upgrade von HTTP zu HTTPS ohne Code-Änderungen
  • MITM-Prävention: Schützt vor Man-in-the-Middle-Angriffen durch Erzwingung verschlüsselter Verbindungen für alle Ressourcen
  • Migration-Beschleunigung: Ermöglicht schrittweise HTTPS-Migration durch automatisches Upgrade ohne vollständigen Code-Rewrite

Spezifikation

Content Security Policy Level 3 – W3C Working Draft https://www.w3.org/TR/CSP3/#directive-upgrade-insecure-requests

Weitere Spezifikationen

Upgrade-Insecure-Requests Header, Strict-Transport-Security Header