

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utilisation d'une politique de sécurité du contenu avec la bibliothèque cliente du SDK Amazon Chime pour JavaScript
<a name="content-security"></a>

Les applications Web modernes utilisent une politique de sécurité du contenu pour protéger les utilisateurs contre certaines catégories d'attaques. Les applications qui utilisent le `VideoFxProcessor` doivent inclure les directives de politique décrites dans cette section. Les directives permettent au SDK Amazon Chime d'accéder aux ressources dont il a besoin lors de l'exécution.

**Topics**
+ [Directives de politique de sécurité du contenu requises](#required-csp)
+ [Exemple de politique de sécurité du contenu](#example-csp)
+ [Erreurs liées à la politique de sécurité du contenu](#csp-errors)
+ [Cross-origin politique de sécurité du contenu Opener](#cross-origin-policy)

## Directives de politique de sécurité du contenu requises
<a name="required-csp"></a>

Vous devez utiliser les directives de politique de sécurité du contenu suivantes.
+ `blob: https://*.sdkassets.chime.aws`Pour `script-src:` ajouter, charger le code de traitement vidéo et `wasm-unsafe-eval` autoriser son exécution. 
+ `blob:``https://*.sdkassets.chime.aws`Pour `script-src-elem:` ajouter, chargez le code de traitement vidéo à partir de la source.
+ Pour `worker-src:` ajouter `blob: https://*.sdkassets.chime.aws` à Load Worker JavaScript across Origins.

Si vous omettez l'une de ces entrées, ou si vous utilisez des en-têtes HTTP et des balises `http-equiv` méta pour spécifier une politique et que vous excluez par inadvertance l'une de ces entrées par intersection, aucun filtre d'arrière-plan ne pourra être initialisé. Le filtre semble ne pas être pris en charge, ou il crée un processeur d'images vidéo non opérationnel. Vous verrez apparaître des erreurs dans la console de votre navigateur, telles que :

```
Refused to connect to
'https://static.sdkassets.chime.aws/bgblur/workers/worker.js…'
because it violates the document's content security policy.
```

### Directives de politique relatives aux scripts requises
<a name="required-script"></a>

Pour fonctionner, la `VideoFxProcessor` classe doit charger JavaScript des classes au moment de l'exécution à partir d'un réseau de diffusion de contenu Amazon. Ces classes utilisent WebGL2 pour implémenter le post-traitement des vidéos. Pour permettre à une application de récupérer et d'exécuter ces classes, vous devez inclure les directives suivantes :
+ `script-src 'self' blob: https://*.sdkassets.chime.aws`
+ `script-src-elem 'self' blob: https://*.sdkassets.chime.aws`

**Note**  
Pour un support complet sur Safari et Firefox, vous devez utiliser les `script-src-elem` directives `script-src` et.

### Directive sur la politique des travailleurs
<a name="required-worker"></a>

Les JavaScript classes de `VideoFxProcessor` charge sous forme de blob pour exécuter un thread de travail Web. Le fil utilise des modèles d'apprentissage automatique pour traiter les vidéos. Pour accorder à une application l'accès permettant de récupérer et d'utiliser ce programme de travail, incluez la directive suivante :

`worker-src 'self' blob: https://*.sdkassets.chime.aws`

### WebAssembly politique
<a name="required-web-assembly"></a>

`VideoFxProcessor`Charge un module WebAssembly (WASM) à partir du même réseau de diffusion de Amazon-owned contenu. Dans Chrome 95 et versions ultérieures, les modules WASM compilés ne peuvent pas être transmis entre plusieurs limites de modules. Pour permettre l'extraction et l'instanciation de ces modules, incluez-les `'wasm-unsafe-eval'` dans la directive. `script-src`

Pour plus d'informations sur la documentation de la politique de sécurité du contenu pour WebAssembly, reportez-vous à la section [Politique de sécurité WebAssembly du contenu](https://github.com/WebAssembly/content-security-policy/blob/main/proposals/CSP.md) sur GitHub.

### (Facultatif) Directive sur la politique relative aux images d'arrière-plan
<a name="optional-directives"></a>

Pour utiliser une image d'arrière-plan chargée dynamiquement avec un filtre de remplacement d'arrière-plan, vous `VideoFxProcessor` devez avoir accès à l'image. Pour ce faire, incluez une `connect-src` directive dans le domaine qui héberge l'image.

## Exemple de politique de sécurité du contenu
<a name="example-csp"></a>

L'exemple de politique suivant vous permet d'utiliser le`VideoFxProcessor`. Les `connect-src` définitions ne sont pas spécifiques à un`VideoFxProcessor`. Ils sont plutôt liés à l'audio et à la vidéo d'une réunion du SDK Amazon Chime.

```
<head>
    <meta http-equiv="Content-Security-Policy" 
        content="base-uri 'self';    
        connect-src       'self' https://*.chime.aws wss://*.chime.aws https://*.amazonaws.com wss://*.chime.aws https://*.ingest.chime.aws;
        script-src        'self' blob: 'wasm-unsafe-eval' https://*.sdkassets.chime.aws; 
        script-src-elem   'self' blob: https://*.sdkassets.chime.aws;
        worker-src        'self' blob: https://*.sdkassets.chime.aws;">
</head>
```

## Erreurs liées à la politique de sécurité du contenu
<a name="csp-errors"></a>

Si vous omettez l'une des directives requises, elle ne `VideoFxProcessor` sera pas instanciée et ne sera pas prise en charge. Dans ce cas, l'erreur suivante (ou similaire) apparaît dans la console du navigateur :

```
Refused to connect to
'https://static.sdkassets.chime.aws/ml_media_fx/otherassets/worker.js'
because it violates the document's content security policy.
```

## Cross-origin politique de sécurité du contenu Opener
<a name="cross-origin-policy"></a>

Pour limiter l'utilisation de la mémoire, le module préfère utiliser un `SharedArrayBuffer` pour le traitement. Toutefois, cela nécessite que vous configuriez soigneusement la sécurité Web. Vous devez définir les en-têtes suivants lorsque vous diffusez le code HTML de votre application :

```
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp
```

Le serveur doit les définir car ils n'ont aucun équivalent de méta-balise. Si vous ne définissez pas ces en-têtes, les filtres d'arrière-plan peuvent utiliser un peu plus de RAM. 

Les filtres d'arrière-plan peuvent être CPU-intensive et GPU-intensive. Certains appareils mobiles et ordinateurs portables ou de bureau de moindre spécification peuvent ne pas être en mesure d'exécuter les filtres en même temps que plusieurs flux vidéo.