CSP: upgrade-insecure-requests
==============================

La directive HTTP `Content-Security-Policy` (CSP) **`upgrade-insecure-requests`** informe l'agent utilisateur de traiter toutes les URL non sécurisées d'un site (servies avec HTTP) comme si elles avaient été remplacées par des URL sécurisées (servies avec HTTPS). Cette directive est prévue pour les sites web ayant un grand nombre d'URL non sécurisées héritées du passé et qui ont besoin d'être récrites.

**Note :** La directive `upgrade-insecure-requests` est évaluée avant la directive `block-all-mixed-content` et si cette elle est définie, cette dernière est effectivement ignorée. Il est recommendé de ne définir que l'une des deux directives mais non les deux, à moins que vous souhaitiez forcer HTTPS sur les anciens navigateurs qui ne le font pas après une redirection vers HTTP.

The `upgrade-insecure-requests` directive will not ensure that users visiting your site via links on third-party sites will be upgraded to HTTPS for the top-level navigation and thus does not replace the `Strict-Transport-Security` (en-US) (HSTS) header, which should still be set with an appropriate `max-age` to ensure that users are not subject to SSL stripping attacks.

Syntaxe
-------
```

Content-Security-Policy: upgrade-insecure-requests;
```

Exemples
--------

Soit cet en-tête CSP :
```

Content-Security-Policy: upgrade-insecure-requests;
```


Et cette balise meta :


```html
<meta
 http-equiv="Content-Security-Policy"
 content="upgrade-insecure-requests" />
```


Avec cet en-tête défini sur le domaine example.com voulant migrer d'HTTP à HTTPS, les requêtes pour des ressources non sécurisées et non navigationnelles sont automatiquement converties (qu'elles soient internes ou externes).


```html
<img src="http://example.com/image.png" />
<img src="http://not-example.com/image.png" />
```


Ces URL seront récrites avant que la requête soit envoyée, signifiant qu'aucune requête non sécurisée ne sera envoyée. Notez que si la ressource demandée n'est pas actuellement disponible via HTTPS, la requête échouera sans se rabattre sur HTTP.


```html
<img src="https://example.com/image.png" />
<img src="https://not-example.com/image.png" />
```


Les conversions navigationnelles vers des ressources externes amènent un risque significatif de dysfonctionnement étant donné que des requêtes peuvent n'être pas converties, par exemple celles-ci :


```html
<a href="https://example.com/">Home</a>
<a href="http://not-example.com/">Home</a>
```

### Identifier des requêtes non sécurisées

À l'aide de l'en-tête `Content-Security-Policy-Report-Only` et de la directive `report-uri`, vous pouvez mettre en place une stratégie de rapportage de violations sans bloquage conjointement à une stratégie de conversion comme :
```

Content-Security-Policy: upgrade-insecure-requests; default-src https:
Content-Security-Policy-Report-Only: default-src https:; report-uri /endpoint
```


De cette manière, vous convertirez toujours les requêtes non sécurisées sur votre site sécurisé mais la stratégie de rapportage identifiera les requêtes non sécurisées et les rapportera à l'adresse fournie.

Spécifications
--------------

| Specification |
| --- |
| Upgrade Insecure Requests # delivery |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `Content-Security-Policy`
* `Upgrade-Insecure-Requests` (en-US) header
* `Strict-Transport-Security` (en-US) (HSTS) header
* `block-all-mixed-content`
* Mixed content