Ideas & Insights

Explorando desarrollo AI-first, guardrails de código y la arquitectura de la descartabilidad.

Tus dependencias pueden leer tus variables de entorno. JavaScript se lo permite.

La autoridad ambiental significa que cualquier código en tu proceso de Node.js puede tocar el sistema de archivos, la red y el entorno. Así es como puedes eliminarla con lockdown, compartments y el paso explícito de capabilities.

Una sola dependencia transitiva comprometida puede exfiltrar tu , escribir en tu sistema de archivos y abrir conexiones salientes. No necesita una…

La proximidad de red no es identidad: cómo los servicios se autentican sin autoridad ambiental

La mayoría de la confianza entre servicios viene de la ubicación en la red, no de la prueba criptográfica. Aquí explicamos cómo las capabilities, mTLS y SPIFFE permiten que los servicios se autentiquen sin autoridad ambiental, y por qué es más difícil de lo que debería.

Tus microservicios comparten una VPC, así que se confían entre sí. Esa confianza es autoridad ambiental: el permiso para invocar un servicio se otorga no por…

Tus dependencias pueden leer cualquier archivo en disco. cap-std las obliga a pedir permiso.

La biblioteca estándar de Rust otorga autoridad de sistema de archivos ambiental a cada dependencia. cap-std la reemplaza con APIs basadas en capabilities que obligan al código a demostrar que tiene derecho a acceder a una ruta antes de abrirla.

Cualquier crate en tu árbol de dependencias puede abrir , escribir en tu directorio , o enumerar cada archivo en tu proyecto. La biblioteca estándar de Rust no…

Tu Servicio Es un Cómplice Inconsciente: Cómo Funcionan los Ataques de Confused Deputy

Un ataque de confused deputy engaña a un servicio privilegiado para que use su autoridad contra sí mismo. Así es como los atacantes explotan la confianza implícita, y por qué la seguridad basada en capabilities es la solución.

Tu servicio tiene una API key para tu almacenamiento en la nube. Un usuario envía una petición. Tu servicio escribe un archivo obedientemente. El archivo…

¿Y si cada función tuviera que recibir permiso en lugar de asumirlo?

La mayoría del código se ejecuta con autoridad ambiental: cada función puede tocar todo. La seguridad basada en capacidades invierte ese modelo al obligar a las funciones a recibir permisos explícitos y delimitados.

Tu función tiene acceso a la base de datos, la pasarela de pagos y el registry de auditoría porque resulta que vive en el mismo proceso. Si un atacante…

Deja de Lanzar Errores que tu Type Checker No Puede Ver

Las excepciones lanzadas ocultan los caminos de fallo de tu sistema de tipos. Aquí te explicamos por qué los retornos de error explícitos hacen tu código más honesto, y cómo adoptarlos sin odiar tu vida.

La firma de tu función dice que devuelve un . No es así. Devuelve un o explota. El sistema de tipos simplemente no sabe nada de la segunda branch. Esta es la…

El compilador debería detectar los casos de estado faltantes, no tu equipo de QA

Agregar un nuevo estado a tu máquina es fácil. Recordar actualizar cada switch no lo es. Así es como hacer que TypeScript se niegue a compilar cuando olvidas un caso.

Las state machines empiezan limpias. Tres valores, tres branches de . Después la lógica de reintento agrega un cuarto estado. El fallo parcial agrega un…