<< Clic para mostrar Tabla de Contenidos >> Definición de la Política de Seguridad de Contenido |
Introducción
La Política de Seguridad de Contenido (CSP por sus siglase en inglés) es un encabezado de HTTP que agrega una capa adicional de seguridad a las páginas web. La política reduce distintos tipos de ataques, como el Cross Site Scripting y ataques de inyección de datos. Asimismo, le permite a los usuarios restringir distintos recursos (JavaScript, CSS, etc) que un navegador podría cargar en una página específica. Con este encabezado, los usuarios pueden definir qué recursos se pueden cargar cuando utilizan Widgets y Robots atendidos El siguiente artículo muestra cómo usar la Política de Seguridad de Contenido en Bizagi Studio para habilitar el contenido de cualquiera de los componentes mencionados anteriormente.
Política de Seguridad de Contenido
La Política de Segridad de Contenido es un encabezado HTTP que agrega una capa de seguridad adicional a las páginas web. Al configurar este encabezado, los usuarios pueden otorgar o restringir permisos de permitir o denegar que distintos recursos carguen contenido en el Portal de Trabajo, como llamadas de JavaScript o componentes CSS. La Política de Seguridad de Contenido incluye distintas directivas, que se utilizan dependiendo del recurso que se quiera administrar. Las principales directivas se encuentran en la siguiente tabla:
Directiva |
Descripción |
---|---|
default-src |
Define la política predeterminada para obtener recursos como JavaScript, imágenes, CSS, fuentes, solicitudes AJAX, marcos y media. Esta directiva funciona como una alternativa para algunas de las otras directivas. |
script-src |
Define fuentes válidas de JavaScript. |
style-src |
Define fuentes válidas de hojas de estilo CSS. |
img-src |
Define fuentes válidas de imágenes. |
connect-src |
Aplica para XMLHttpRequest, WebSocket, fetch(), <a ping> o EventSource. En caso de negar algún permiso, el navegador muestra un código HTTP 400. |
font-src |
Define fuentes válidas de recursos de fuentes. |
object-src |
Define fuentes válidas de complementos (<object>, <embed>, <applet>). |
media-src |
Define fuentes válidas de audio y video (<audio>, <video>). |
frame-src |
defines fuentes válidas para cargar marcos. |
Para ver la lista de directivas completa, haga clic aquí.
Cada una de las directivas puede incluir una o más referencias, las cuales se usan para conceder acceso a distintas fuentes. Algunas de las referencias más comunes son:
Reference |
Descripción |
Ejemplo |
---|---|---|
* |
Funciona como comodín. Permite cualquier URL exceptuando data:, blob: y esquemas filesystem:. |
script-src * |
'none' |
Evita el cargue de cualquier fuente. |
object-src 'none' |
'self' |
Permite cargar recursos desde el mismo origen (host y puerto) |
default-src 'self' |
data: |
Permite cargar recursos a través del esquema de datos (por ejemplo, imágenes codificadas en Base64). |
img-src data: |
DominioEspecífico.com |
Permite cargar recursos de un dominio específico. |
media-src DominioEspecífico.com |
*.ejemplo.com |
Permite cargar recursos de cualquier subdominio bajo ejemplo.com. |
img-src *.ejemplo.com |
https: |
Permite cargar recursos sólo a través de dominios HTTPS. |
object-src https: |
'unsafe-inline' |
Permite el uso de elementos de fuente en línea como atributos de estilo, onclick o cuerpos de etiquetas de script (depende del contexto de la fuente a la que se aplica) y URIs javascript: |
script-src 'unsafe-inline' |
'unsafe-eval' |
Permite la evaluación de código dinámico inseguro como JavaScript eval() |
script-src 'unsafe-eval' |
Para ver la lista completa de referencias, haga clic aquí.
Si una directiva incluye más de un recurso, se deben separar por espacios, a menos que sea 'none', que debe ser la única referencia en la directiva. Cuando se define la Política de Seguridad de Contenido, no es necesario incluir todas las directivas. Se recomienda incluir default-src y sólo aquellas en las que necesite dar algún acceso. Por ejemplo, si necesita otorgar permisos a una fuente que cargue recursos de las directivas script-src, style-src e img-src, sólo debe incluir estas. |
Política de Seguridad de Contenido en Bizagi Studio
Por defecto, Bizagi incluye la siguiente definición para la Política de Seguridad de Contenido:
default-src 'self' data: blob:;
script-src 'self' 'unsafe-inline' 'unsafe-eval';
style-src 'self' 'unsafe-inline';
img-src 'self' data: blob:;
font-src * 'unsafe-inline' data: blob:;
Sin embargo, cuando se utilizan robots atendidos o widgets que carguen contenido de una fuente externa, es necesario cambiar este encabezado. Por ejemplo, si un widget utiliza las directivas script-src, style-src y img-src, debe incluir y/o modificar estas.
default-src 'self' data: blob:;
script-src 'self' 'unsafe-inline' 'unsafe-eval' [widgetScriptURL];
style-src 'self' 'unsafe-inline' [widgetStyleURL];
img-src 'self' data: blob: [widgetImgURL];
donde:
•[widgetScriptURL]:debe ser la URL desde la que el widget usa sus scripts.
•[widgetStyleURL]: debe ser la URL desde la que el widget carga sus estilos.
•[widgetImgURL]: debe ser la URL desde la que el widget toma sus imágenes.
Para cambiar la Política de Seguridad de Contenido, es necesario hacerlo a través de las opciones de entorno de Bizagi. La siguiente sección muestra cómo definir una nueva Política de Seguridad de Contenido en Bizagi Studio.
Política de Seguridad de Contenido para robots atendidos
La siguiente es la definición que debería realizarse para la Política de Seguridad de Contenido para robots atendidos:
default-src http://127.0.0.1:2323 [http://www.suorquestrator.com] ‘self’ data: blob:;
script-src ‘self’ ‘unsafe-inline’ ‘unsafe-eval’;
style-src ‘self’ ‘unsafe-inline’ blob:;
img-src ‘self’ data: blob:;
font-src * ‘self’ ‘unsafe-inline’ data:;
donde [http://www.suorquestrator.com] es la URL del orquestador que quiere utilizar.
Política de Seguridad de Contenido para widgets
La definición de la Política de Seguridad de Contenidos para cada widget se especifica en su propia documentación. Siga los pasos descritos abajo para configurar este encabezado, pero tenga en cuenta que debe utilizar la definición que se encuentra en el documento respectivo.
Política de Seguridad de Contenido para más de un recurso
Si su proyecto incluye más de un widget, o un widget y robots atendidos, debe configurar únicamente una Política de Seguridad de Contenido. Por ejemplo, si necesita usar un widget que usa las directivas script-src, style-src y img-src; y robots atendidos, la definición para la Política de Seguridad de Contenidos sería la siguiente:
default-src http://127.0.0.1:2323 [http://www.suorquestrator.com] 'self' data: blob:;
script-src 'self' 'unsafe-inline' 'unsafe-eval' [widgetScriptURL];
style-src 'self' 'unsafe-inline' blob: [widgetStyleURL];
img-src 'self' data: blob: [widgetImgURL];
font-src * ‘self’ ‘unsafe-inline’ data:;
Donde:
•http://127.0.0.1:2323 y [http://www.suorquestrator.com] corresponden a los parámetros de configuración para los robots atendidos. Tenga en cuenta que necesita reemplazar [http://www.suorquestrator.com] con la URL de su orquestador.
•[widgetScriptURL], [widgetStyleURL] y [widgetImgURL] corresponden a los parámetros de configuración del widget. Tenga en cuenta que debe reemplazar estos parámetros con las URL de las que el widget carga su contenido.
¿Qué necesita hacer?
Para configurar la Política de Seguridad de Contenido en Bizagi Studio, complete los siguientes pasos:
1.En Bizagi Studio, diríjase a la pestaña de Configuración y seleccione Ambiente.
2.En la nueva ventana, diríjase a la pestaña de Personalizado. Allí, puede definir nuevos parámetros personalizados para cada ambiente. Haga clic en el botón de Nuevo para crear un nuevo parámetro.
3.Cuando se crea un nuevo parámetro, debe definir un nombre, un valor y una descripción. Para configurar la Política de Seguridad de Contenido, utilice los siguientes parámetros:
oNombre: Content-Security-Policy.
oValor por defecto: use una definición válida para la política de seguridad dependiendo de su va a usar un robot atendido o un widget.
oDescripción: agregue una descripción para su nuevo parámetro.
Asegúrese de definir correctamente la Política de Seguridad de Contenido. Si el valor del parámetro tiene una sintaxis incorrecta, el parámetro será ignorado y la política permitirá acceso sin restricciones. |
4.Cuando termine, haga clic en Ok. El nuevo parámetro se mostrará en el ambiente donde lo configuró.
La Política de Seguridad de Contenido se configura exclusivamente en el entorno donde se define cuando se despliega el proyecto. Debe definir una Política de seguridad de contenido por ambiente, utilizando la pestaña correspondiente.
|
Consideraciones sobre la configuración del CSP
Para asegurar que el paquete de despliegue contiene la configuración de la Política de Seguridad de Contenido(CSP), marque la casilla de parametros de ambiente dentro de las configuraciones avanzadas en la ventana de exportación. Para hacer la configuración complete los siguientes pasos:
1.En Bizagi Studio diríjase a la pestaña de Exportación/Importación y seleccione Exportación
2.En la nueva ventana, diríjase a la sección de Avanzada y seleccione el componente de Parametros de Ambiente.
Tenga en cuenta las siguientes condiciones:
•En el primer despliegue a realizar, la configuración será actualizada en el ambiente de destino.
•Sí en el ambiente de destino no se han realizado cambios a la configuración desplegada anteriormente de la CSP, un nuevo paquete de despliegue con cambios sobre este será actualizada por el ambiente de destino
•Sí ha realizado cambios sobre la configuración del CSP en el ambiente de Prueba o Producción, usando el Management Console(MC), un nuevo paquete con cambios al CSP no se reflejará. Las modificaciones CSP deberán ser realizadas directamente en el MC.
Siguientes pasos
Una vez haya terminado la configuración de la Política de Seguridad de Contenido, puede instalar sus widgets, o configurar sus robots atendidos.
Last Updated 1/31/2023 4:38:43 PM