---
title: Secure Contexts
slug: Web/Security/Secure_Contexts
translation_of: Web/Security/Secure_Contexts
---
Un navigateur entre dans un **contexte sécurisé** quand il a satisfait les exigences minimale de sécurité. Un contexte sécurisé permet au navigateur de mettre à disposition des APIs qui nécessitent des transferts sécurisés avec l'utilisateur.
## Pourquoi certaines fonctionnalitées devraient être limitées ?
Certaines APIs du web peuvent donner beaucoup de pouvoir à un attaqueur, lui permettant par exemple:
- Entrer dans la vie privée d'un utilisateur.
- Avoir accès à l'ordinateur d'un utilisateur.
- Avoir accès à des données (comme l'identité de l'utilisateur).
## À quel moment un context est-il considéré comme sécurisé ?
Un contexte sera considéré comme sécurisé s'il est servi locallement, ou depuis un serveur sécurisé. Un contexte qui n'est pas à la racine (une page qui n'est pas dans une fenêtre, iframe, ...) doit avoir tous ses contextes parents sécurisés.
Les fichiers servis locallement avec des chemins comme *http\://localhost* et *file://* sont considérés sécurisés.
Les contextes qui ne sont pas servis locallement doivent être servis avec *https\://* ou *wss\://* et les protocoles utilisés ne doivent pas être considérés obsolètes.
## Détection des fonctionnalités
Les pages peuvent utiliser la détection de fonctionnalités pour vérifier si elles sont dans un context sécurisé ou non en utilisant le booléen `isSecureContext `qui est présent dans le scope global.
```js
if (window.isSecureContext) {
// La page est dans un contexte sécurisé, les services workers sont disponibles.
navigator.serviceWorker.register("/offline-worker.js").then(function () {
...
});
}
```
## Quelles APIs requièrent un contexte sécurisé ?
- {{SpecName('Service Workers')}}
- {{SpecName('Web Bluetooth')}}
- {{SpecName('EME')}}
### Prositions de brouillons
-
Chrome | Safari | Firefox | |
getUserMedia |
Désactivé |
Accès temporaire uniquement (les utilisateurs ne peuvent pas choisir "Retenir ce choix" dans la selection de permission). |
|
Geolocation |
Désactivé |
Désactivé |
Suppression en cours |
EME | Avertissement de dépréciation | ||
Device motion / orientation | Avertissement de dépréciation | ||
MIDI | Désactivé | ||
{{SpecName('Web Crypto API')}} | est réservé à HTTPS même is la vérification du Secure Context est antérieur |
Spécification | État | Commentaire |
{{SpecName('Secure Contexts')}} | {{Spec2('Secure Contexts')}} | Brouillon |