Conexión websocket error después de la adición de Contenido-Política de Seguridad en nginx

0

Pregunta

Quiero añadir un nuevo encabezado Content-Política de Seguridad para mi nginx conf con el fin de mejorar la seguridad. He añadido todas las fuentes externas, y todo funciona bien, excepto por el chatbot que es infobip. Utiliza wss protocolo y por alguna razón no puedo encontrar la manera correcta de configurar.

Este es el error que me sale.

Y este es mi el encabezado en nginx.conf

add_header 'Content-Política de Seguridad' "default-src 'auto' 'inseguro-inline' sas: sas://.infobip.com ws://.infobip.com .infobip.com http://www.w3.org https://fonts.googleapis.com https://stackpath.bootstrapcdn.com .youtube.com https://cdn.jsdelivr.net/; img src 'auto' data: https://.openstreetmap.org wss://livechat-fr.infobip.com/chat/web/proxy/827/toxgylwd/websocket siempre; connect-src 'auto' wss: ws: wss://.infobip.com ws://*.infobip.com .infobip.com https://.doubleclick.net wss://livechat-fr.infobip.com/chat/web/proxy/492/hybzmnjl/websocket 'inseguro-inline' siempre;";

He probado muchas formas para permitir la conexión websocket pero ninguno parece funcionar.

2
0

Ya que cada conexión websocket empezar por regular de la petición http, debe agregar un CSP para https://your-websocket-server-domain:port

Http de la solicitud será contestada con una 101: swtiching protocols y, a continuación, la conexión se convertirá en una conexión WebSocket.

Tenga en cuenta que no creo que el ws: o wss: csp directiva es necesaria en absoluto.

2021-11-20 14:15:38
0

Usted tiene 3 problemas:

  1. La consola de errores que se muestran no están CSP-relacionados. "403 Forbidden" significa que usted no tiene acceso a los relacionados con la Url. "'X-Frame-Options' para 'negar'" significa intenta incrustar iframe pero esa página no permite incrustar a través de X-Frame-Options: "DENY" Encabezado HTTP.

  2. Formato incorrecto de Nginx add_header. Se deben parece (prestar atención a las cotizaciones - always palabra clave debe ser colocado fuera de la CSP configuración):

    add_header Content-Security-Policy "default-src 'self'..." always;

  3. Mal formato de CSP host-fuentes. Host-fuentes, como .youtube.com no debe contener una de las principales . dot:
    youtube.com permitirá cargar los recursos de http(s)://youtube.com y *.youtube.com permitirá a los recursos de los subdominios de youtube.com.

Por lo que su sintácticamente correcta CSP deben parece:

add_header Content-Security-Policy "\
default-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com\
https://fonts.googleapis.com infobip.com ws://infobip.com wss://infobip.com youtube.com\
https://cdn.jsdelivr.net http://www.w3.org;\
connect-src 'self' infobip.com wss://infobip.com ws://*.infobip.com\
wss://livechat-fr.infobip.com/chat/web/proxy/ https://doubleclick.net;\
img-src 'self' data: https://openstreetmap.org;\
" always;

Tenga en cuenta que:

  • wss://livechat-fr.infobip.com/chat/web/proxy/492/hybzmnjl/websocket - no incluyen negrita camino-parte a CSP, porque es cambiado cada vez.
  • El esquema de fuentes como wss: cubre cualquier host-fuentes con ese esquema (por ejemplo, wss://sitio.com/websocket). Así que he eliminado el sistema de fuentes y a la izquierda el host fuentes.
  • He eliminado algunas fuentes no compatibles, por ejemplo 'unsafe-inline' en el connect-src.
  • Nginx debe apoyar una barra diagonal inversa \ como salto de línea, por lo que la he usado porque es difícil mantener la CSP en una línea. Verificación ¿su Nginx versión es compatible con esta característica.

Nota 2: Este documento puede bloquear algunas fuentes - sólo tiene que añadir a las directivas correspondientes.

Nota 3: Considere la posibilidad de mover las fuentes de la default-src directiva para la script-src + style-src + font-src las directivas. Porque por ahora se permite en realidad 'unsafe-inline' en el scrit-src por lo que su CSP no protege contra XSS. También será difícil para administrar CSP en el futuro, ya que las fuentes se mezclan en una directiva.

2021-11-28 23:35:39

Gracias, pero por desgracia todavía se me pone el mismo error - conexión WebSocket para ... error. También tengo: se Negó a mostrar 'livechat-fr.infobip.com"en un marco, ya que el set de X-Frame-Options' para 'negar'. Este es el cómo he configurado el encabezado add_header 'X-Frame-Options' "SAMEORIGIN" siempre;
Baseplate

Se establece X-Frame-Options "SAMEORIGIN" en el servidor pero livechat-fr.infobip.com bloqueado no es servido por el servidor. Es livechat-fr.infobip.com publica X-Frame-Options "DENY" encabezado para prevenir la incrustación. Puede haber configurado algo incorrectamente en su infobip.com cuenta.
granty

El problema está resuelto. El CSP directiva funciona bien. Resultó que la red de la empresa estaba bloqueando el tráfico desde/hacia infobip y yo no había sido informado acerca de eso. Gracias de nuevo por tu esfuerzo, todavía me ayudó a establecer la directiva difíciles.
Baseplate

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................