0%
Tests de seguridad

Tests

Demostrar que el acceso se deniega, no solo que se concede.

15-20 min

Tests de seguridad

Una configuración de seguridad tiene una propiedad desagradable: falla silenciosamente en el sentido que importa. Si una regla es demasiado estricta, lo descubre en treinta segundos: alguien se queja de que no puede acceder a una página. Si es demasiado permisiva, nadie se queja. Nunca. La aplicación funciona, todo el mundo accede a lo que quiere, y el fallo lo descubre una auditoría, o alguien con peores intenciones.

Los tests de seguridad corrigen esta asimetría, y tienen una particularidad: los casos interesantes son los casos negativos. Un test que comprueba que un administrador llega a la consola de administración tiene poco valor; ese camino se recorre constantemente. El test que cuenta es el que verifica que un usuario normal recibe un 403, que un anónimo recibe un 401 y que un cliente no puede leer la factura de otro cliente.

Estos tests tienen una segunda virtud: documentan su modelo de permisos de forma ejecutable. Cuando alguien añada una regla dentro de seis meses y absorba por accidente una regla más específica, será el test negativo el que lo detenga, no la revisión de código.

Comentarios

Los comentarios funcionan con GitHub Discussions

Inicia sesión con GitHub para participar en la discusión

¡Enlace copiado!