Si tu sitio web implementa una Política de Seguridad de Contenido (CSP), debes asegurarte de que permita cargar los recursos necesarios para que Fin Messenger funcione correctamente. CSP es una capa adicional de seguridad que ayuda a detectar y mitigar ciertos tipos de ataques, incluyendo Cross Site Scripting (XSS) y ataques de inyección de datos.
A continuación, se muestran las directivas y valores que debes incluir en tu política para garantizar la funcionalidad completa de Fin Messenger en tu producto y sitio web.
Directivas CSP requeridas
Fin Messenger soporta completamente Google strict CSPv3:
Content-Security-Policy:
object-src 'none';
script-src 'nonce-{random}' 'unsafe-inline' 'unsafe-eval' 'strict-dynamic' https: http:;
base-uri 'self';
Si ya estás aplicando esta política en tu sitio web, no necesitas hacer cambios. También debes incluir algunas fuentes nonce para ciertos scripts cargados por Fin Messenger. Puedes consultar este tutorial para ayuda sobre el manejo de nonces.
Lista blanca de fuentes
Si prefieres confiar en la lista blanca de fuentes (por ejemplo, si no puedes usar características de CSPv2 o v3), aquí están las directivas relevantes que debes usar:
script-src:
https://app.intercom.io
https://widget.intercom.io
https://js.intercomcdn.com
Si aplicas otras directivas CSP, debes agregar las siguientes entradas para que Fin Messenger funcione correctamente:
Nota: Los dominios CDN regionales listados a continuación solo deben agregarse para la región de alojamiento de tu espacio de trabajo. Por ejemplo, un espacio alojado en EE. UU. requiere https://uploads.intercomcdn.com pero no https://uploads.intercomcdn.eu ni https://uploads.au.intercomcdn.com. Lo mismo aplica para otros dominios específicos de región (por ejemplo, downloads.*, messenger-apps.*, static.intercomassets.* y intercom-attachments.*). Si no estás seguro de tu región de alojamiento, verifica la configuración de tu espacio de trabajo.
connect-src:
https://via.intercom.io
https://api.intercom.io
https://api.au.intercom.io
https://api.eu.intercom.io
https://api-iam.intercom.io
https://api-iam.eu.intercom.io
https://api-iam.au.intercom.io
https://api-ping.intercom.io
https://*.intercom-messenger.com
wss://*.intercom-messenger.com
https://nexus-websocket-a.intercom.io
wss://nexus-websocket-a.intercom.io
https://nexus-websocket-b.intercom.io
wss://nexus-websocket-b.intercom.io
https://nexus-europe-websocket.intercom.io
wss://nexus-europe-websocket.intercom.io
https://nexus-australia-websocket.intercom.io
wss://nexus-australia-websocket.intercom.io
https://uploads.intercomcdn.com
https://uploads.intercomcdn.eu
https://uploads.au.intercomcdn.com
https://uploads.eu.intercomcdn.com
https://uploads.intercomusercontent.com
child-src:
https://intercom-sheets.com
https://www.intercom-reporting.com
https://www.youtube.com
https://player.vimeo.com
https://fast.wistia.net
font-src:
https://js.intercomcdn.com
https://fonts.intercomcdn.com
form-action:
https://intercom.help
https://api-iam.intercom.io
https://api-iam.eu.intercom.io
https://api-iam.au.intercom.io
media-src:
https://js.intercomcdn.com
https://downloads.intercomcdn.com
https://downloads.intercomcdn.eu
https://downloads.au.intercomcdn.com
img-src:
blob:
data:
https://js.intercomcdn.com
https://static.intercomassets.com
https://downloads.intercomcdn.com
https://downloads.intercomcdn.eu
https://downloads.au.intercomcdn.com
https://uploads.intercomusercontent.com
https://gifs.intercomcdn.com
https://video-messages.intercomcdn.com
https://messenger-apps.intercom.io
https://messenger-apps.eu.intercom.io
https://messenger-apps.au.intercom.io
https://*.intercom-attachments-1.com
https://*.intercom-attachments.eu
https://*.au.intercom-attachments.com
https://*.intercom-attachments-2.com
https://*.intercom-attachments-3.com
https://*.intercom-attachments-4.com
https://*.intercom-attachments-5.com
https://*.intercom-attachments-6.com
https://*.intercom-attachments-7.com
https://*.intercom-attachments-8.com
https://*.intercom-attachments-9.com
https://static.intercomassets.eu
https://static.au.intercomassets.com
style-src:
'unsafe-inline'
Además, si tu servicio solo soporta CSPv3, deberás usar dos entradas separadas para frame-src y worker-src en lugar de child-src, ya que esta palabra clave está siendo desaprobada.
Nota:
Las entradas anteriores son necesarias para que la funcionalidad de Fin Messenger funcione correctamente en tu aplicación. Algunas integraciones en nuestra App Store pueden requerir que agregues otras entradas a tu CSP también. Si es así, verás un mensaje de error en la consola de desarrolladores de tu navegador que lo indica.
https://*.intercom-messenger.comywss://*.intercom-messenger.comse han agregado a la directivaconnect-srcpara acomodar una infraestructura más amplia y escalable para la comunicación en tiempo real en Fin Messenger. Estas entradas comodín son necesarias para soportar la actualización y asegurar que el messenger pueda conectarse dinámicamente a múltiples puntos finales en tiempo real.
Firewalls
Muchos de los dominios mencionados también deberán permitirse en la configuración de tu firewall para permitir el correcto funcionamiento de Fin Messenger.
