Ahora, por supuesto, puedes establecer estos encabezados manualmente, pero hay un par de herramientas que facilitan mucho hacer esto, en lugar de definir las políticas manualmente, y en algunos casos te brindarán seguridad de tipo en las opciones. La primera es, si estás utilizando Next.js, entonces el complemento Next Safe es una buena opción, pero si estás utilizando JavaScript en general, entonces Helmet es una excelente opción. Estas se incluyen en tu código, y como parte de tu configuración, defines la política CSP que deseas. Luego puedes utilizar la herramienta de evaluación de Google. Una vez que se ha generado una política, puedes ingresarla en el evaluador y te dará una explicación sobre las diferentes configuraciones y te ayudará a ajustarla si hay alguna recomendación.
Luego pasamos a cómo pensar en la seguridad en general en toda tu aplicación, y el principio aquí es la centralización. Aquí es donde implementas tu funcionalidad de seguridad en un solo lugar de tu aplicación y luego la llamas en otros lugares. Básicamente, construyes una biblioteca para tu seguridad y luego la importas. Esto facilita mucho más adelante cuando necesitas hacer cambios, porque todo está en un solo lugar. Es mucho más fácil auditarlo, tanto cuando haces solicitudes de extracción internamente, como si tienes pruebas de penetración externas o auditorías, es mucho más fácil y menos tiempo consumidor para esos equipos. Y también es mucho más fácil de probar, porque puedes escribir pruebas para una sola parte de tu código base, en lugar de tenerlo disperso en diferentes áreas. Esto significa autenticación, el inicio de sesión en tu aplicación, y autorización, que son los roles y los permisos que las personas tienen una vez que han iniciado sesión. Ahora hay opciones de código abierto para construir esto. Por ejemplo, NextAuth, que se está convirtiendo en AuthJS, es un gran proyecto de código abierto que te permite implementar la autenticación. Clark también hace esto, es una herramienta comercial popular. Y luego están Oso y PyMet, que son herramientas comerciales para implementar la autorización.
Y luego lo último de lo que hablaremos es cómo tu editor de código puede ayudar realmente con todo esto. La herramienta que siempre uso, que he estado usando durante un tiempo, se llama trunk.io. En realidad, soy inversor en la empresa, pero eso fue después de haberlo estado usando. Es esencialmente una herramienta de nivel superior, es una CLI que te ayuda a gestionar todos tus linters y las reglas de código en todo. En lugar de tener que configurar cada uno individualmente y para todos los diferentes lenguajes y herramientas que estás utilizando, puedes tener la configuración gestionada por Trunk. Se ejecuta localmente y también puede integrarse en CI y señalar cosas a medida que se envían a las solicitudes de extracción. Sin embargo, si quieres utilizar estas herramientas individualmente, hay un par que recomiendo específicamente. Trivy, que es una herramienta de análisis estático para la infraestructura como código, analiza los cambios que utilizaste para configurar tu aplicación, ya sea algo como Terraform o diferentes marcos, para asegurarte de que se eviten prácticas comunes o errores comunes. Y luego un problema clásico es incluir accidentalmente secretos en el código fuente. Git está diseñado como una base de datos inmutable. No lo es del todo, pero una vez que envías el código a GitHub, especialmente si es un repositorio público, es esencialmente permanente. Y lo que quieres hacer es evitar enviar secretos a GitHub. GitHub tiene su propio escaneo de secretos y también los valida. Entonces, si envías una clave de AWS, verificará que todavía sea válida.
Comments