

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Uso de una política de seguridad de contenido con la biblioteca cliente del SDK de Amazon Chime para JavaScript
<a name="content-security"></a>

Las aplicaciones web modernas utilizan una política de seguridad de contenido para proteger a los usuarios de determinadas clases de ataques. Las aplicaciones que utilicen el `VideoFxProcessor` deben incluir las directivas de políticas que se describen en esta sección. Las directivas otorgan a Amazon Chime SDK acceso a los recursos que necesita en tiempo de ejecución.

**Topics**
+ [Directivas de política de seguridad de contenido obligatorias](#required-csp)
+ [Ejemplo de política de seguridad de contenido](#example-csp)
+ [Errores de la política de seguridad del contenido](#csp-errors)
+ [Cross-origin política de seguridad de contenido de Opener](#cross-origin-policy)

## Directivas de política de seguridad de contenido obligatorias
<a name="required-csp"></a>

Debe utilizar las siguientes directivas de política de seguridad de contenido.
+ Para `script-src:` añada `blob: https://*.sdkassets.chime.aws` para cargar el código de procesamiento de video y `wasm-unsafe-eval` para permitir su ejecución. 
+ Para `script-src-elem:` añada `blob:` `https://*.sdkassets.chime.aws` para cargar el código de procesamiento de video desde la fuente.
+ Para `worker-src:` añadir o `blob: https://*.sdkassets.chime.aws` cargar trabajadores JavaScript en todos los orígenes.

Si omite alguna de estas entradas, o si utiliza encabezados HTTP y metaetiquetas de `http-equiv` para especificar una política y excluye inadvertidamente alguna de estas entradas por intersección, no se podrá inicializar un filtro en segundo plano. Parece que el filtro no es compatible o crea un procesador de fotogramas de video no operativo. Verá errores en la consola de su navegador, como los siguientes:

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

### Directivas de política de scripts requeridas
<a name="required-script"></a>

Para funcionar, la `VideoFxProcessor` clase debe cargar JavaScript las clases en tiempo de ejecución desde una red de entrega de contenido de Amazon. Estas clases utilizan WebGL2 para implementar el posprocesamiento de video. Para permitir que una aplicación busque y ejecute estas clases, debe incluir las siguientes directivas:
+ `script-src 'self' blob: https://*.sdkassets.chime.aws`
+ `script-src-elem 'self' blob: https://*.sdkassets.chime.aws`

**nota**  
Para obtener una compatibilidad total con Safari y Firefox, debes usar las directivas `script-src` y `script-src-elem`.

### Directiva de política de trabajo
<a name="required-worker"></a>

`VideoFxProcessor`Carga las JavaScript clases como un blob para ejecutar un hilo de trabajo web. El hilo utiliza modelos de machine learning para procesar el video. Para conceder a una aplicación el acceso necesario para recuperar y utilizar este programa de trabajo, incluye la siguiente directiva:

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

### WebAssembly política
<a name="required-web-assembly"></a>

`VideoFxProcessor`Carga un módulo WebAssembly (WASM) desde la misma red de entrega de Amazon-owned contenido. En Chrome 95 y versiones posteriores, los módulos WASM compilados no se pueden transferir a través de varios límites de módulos. Para poder recuperar e instanciar estos módulos, incluya `'wasm-unsafe-eval'` en la directiva `script-src`.

Para obtener más información sobre la documentación de la Política de seguridad de contenido WebAssembly, consulte la [Política de seguridad de WebAssembly contenido](https://github.com/WebAssembly/content-security-policy/blob/main/proposals/CSP.md) en GitHub.

### (Opcional) Política de imágenes de fondo
<a name="optional-directives"></a>

Para utilizar una imagen de fondo cargada dinámicamente con un filtro de reemplazo de fondo, `VideoFxProcessor` debe tener acceso a la imagen. Para ello, incluya una directiva de `connect-src` con el dominio que aloja la imagen.

## Ejemplo de política de seguridad de contenido
<a name="example-csp"></a>

La siguiente política de ejemplo le permite usar el `VideoFxProcessor`: Las definiciones de `connect-src` no son específicas de un `VideoFxProcessor`. En cambio, se relacionan con el audio y el video de una reunión de Amazon Chime SDK.

```
<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>
```

## Errores de la política de seguridad del contenido
<a name="csp-errors"></a>

Si omite alguna de las directivas obligatorias, `VideoFxProcessor` no se instanciará ni será compatible. En ese caso, aparece el siguiente error (o uno similar) en la consola del navegador:

```
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 política de seguridad de contenido de Opener
<a name="cross-origin-policy"></a>

Para limitar el uso de memoria, el módulo prefiere usar una `SharedArrayBuffer` para el procesamiento. Sin embargo, esto requiere que configure cuidadosamente la seguridad web. Debe configurar los siguientes encabezados al publicar el código HTML de su aplicación:

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

El servidor debe configurarlos porque no tienen equivalentes en metaetiquetas. Si no configura estos encabezados, es posible que los filtros de fondo consuman un poco más de RAM. 

Los filtros de fondo pueden ser CPU-intensive y. GPU-intensive Es posible que algunos dispositivos móviles y computadoras portátiles o de sobremesa con especificaciones inferiores no tengan la potencia necesaria para ejecutar los filtros junto con varias transmisiones de video.