Qué es

Hay control de acceso roto cuando una aplicación no comprueba correctamente si el usuario tiene permiso para hacer lo que pide. El ejemplo clásico es el IDOR (referencia insegura a objetos): cambias un identificador en la URL o en una petición y accedes a datos de otra persona.

Si cambiar un número en una URL te muestra la factura de otro cliente, eso es un IDOR.

Por qué aparece tanto

  • La comprobación de permisos se hace en el navegador (ocultando botones) en lugar de en el servidor.
  • Se confía en que el usuario "no va a manipular" la petición.
  • Cada endpoint nuevo se añade sin revisar la autorización a nivel de objeto.

Es difícil de detectar con herramientas automáticas porque no es un patrón fijo: depende de la lógica de tu aplicación. Por eso lo encuentra el análisis manual, no el escáner.

Cómo se previene

La regla es sencilla de enunciar y disciplinada de aplicar: validar la autorización en el servidor, para cada recurso y en cada petición. Denegar por defecto, comprobar que el objeto solicitado pertenece a quien lo pide, y no fiarse nunca de lo que llega del cliente. En un pentest verificamos exactamente esto, endpoint por endpoint.