Hola a todos. Gracias por tenerme en la Conferencia React Advanced 2023. Soy Lucas Esteveau. Soy un contratista principal de ingeniería de interfaz de usuario de Avenue Code en Apple desde que me mudé a California hace unos cuatro años. También presento un podcast en portugués brasileño sobre la carrera en tecnología. Así que si tienes curiosidad y hablas portugués, échale un vistazo en las principales plataformas de streaming.
Estoy realmente emocionado de hablarles sobre cómo debería ser su aplicación Next.js con una Política de Seguridad de Contenido hoy y quiero empezar respondiendo ¿por qué debería preocuparme por una Política de Seguridad de Contenido? Bueno, resulta que tu navegador no es 100% seguro. Ya sea React o Next.js o cualquier biblioteca o marco que puedas estar utilizando para tu aplicación web. Aunque los navegadores tienen características de seguridad incorporadas como la política de origen único y CORS y bibliotecas y marcos como React y Next.js hacen un trabajo bastante decente en la limpieza del código y proporcionando características web para cerrar brechas de seguridad, no podemos darlo por hecho. Si un código como este se inyecta en tu sitio web, tu navegador o las características predeterminadas de React no pueden prevenir que esto se ejecute. Es decir, tu aplicación podría estar expuesta a ataques de scripting de tipo cruzado, y los preciados datos podrían filtrarse.
Ahí es cuando una CSP resulta útil. Una política de seguridad de contenido. Es una capa de seguridad que ayuda a proteger las aplicaciones de ataques como los ataques de scripting de tipo cruzado o ataques de inyección de datos, y lo hace restringiendo la funcionalidad del navegador. Una política de seguridad de contenido está compuesta por una lista de directivas de política. El navegador estará limitado a permitir solo lo que definas en tu política. Así que aquí tienes un ejemplo de cómo se compone una política de seguridad de contenido. Aquí otro ejemplo, donde las directivas de política, donde estoy definiendo que las fuentes predeterminadas de contenido, déjame volver a este. Aquí hay ejemplos de directivas de política donde estoy definiendo que las fuentes predeterminadas de contenido deben provenir de mi dominio. Y estoy añadiendo una excepción para las fuentes, porque quiero permitir que se descarguen las Fuentes Web de Google.
Hay dos formas de implementar una política de seguridad de contenido en tu aplicación. La primera es añadiendo una etiqueta meta en el encabezado HTML, pero esta no es la preferida. La otra forma, y la mejor manera de hacerlo, es crear un encabezado para ello. Así que aquí estamos añadiendo una clave CSP y el valor que contendrá nuestras directivas. En este caso, como dije antes, estoy diciendo que la fuente predeterminada de mi contenido, va a venir de mi dominio, y añadiendo una excepción para las fuentes que también pueden venir de Google. Cuando se trata de Next.js, así es como se ve una CSP. Simplemente puedes añadir una lista de directivas en tu encabezado dentro de tu archivo de configuración de next. Puedes definir a qué tipo de solicitudes se aplicará la CSP utilizando el atributo de origen. En este caso, estoy diciendo que mi política de seguridad de contenido se aplicará a cada una de las solicitudes. No estoy filtrando, aunque podrías hacerlo, filtrando tu API por ejemplo.
Comments