Definición de la Política de Seguridad de Contenido

<< Clic para mostrar Tabla de Contenidos >>

Navegación:  Bizagi Studio > Definición de Seguridad >

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 d 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í.

 

note_pin

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 Entorno.

 

CSP01

 

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.

 

CSP02

 

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.

 

CSP03

 

note_pin

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ó.

 

CSP04

 

note_pin

La Política de Seguridad de Contenido quedará configurada únicamente en el ambiente donde se definió, y no será considerada cuando el proyecto se despliegue. Si desea defnir una Política de Seguridad de Contenido para otro ambiente, debe configurarla en la pestaña correspondiente.

 

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.