Cómo manejar adecuadamente los errores no autorizados en las ZPE [cerrado]

1

Para evitar la adivinación de URL para usuarios no autorizados, devolveré un error 404 incluso si la URL existe. ¿Es mejor devolver siempre una página de error 404 incluso si la llamada es a una API? ¿O es mejor devolver un JSON con un 404 en caso de una llamada a la API? ¿Qué sugieres?

    
pregunta DGomez 05.12.2016 - 19:47
fuente

2 respuestas

2

Bueno, es más fácil devolver JSON si la API especifica que devuelve JSON. Si no especifica de ninguna manera, probablemente no importa mucho.

Honestamente, generalmente prefiero devolver algo útil y significativo. Para las personas, me gustaría redirigir a la página de inicio de sesión. Para una API, devolvería un mensaje no autorizado. Devolver un 404 cuando no falta el resultado no es muy útil. Por supuesto, esta es más una cuestión de usabilidad que de seguridad.

Si desea que su aplicación sea utilizable, devuelva los datos correctos / útiles a menos que se filtre algo crítico. Si desea que su aplicación sea ultra segura pero menos utilizable, lo mejor es que ni siquiera devuelva un 404, en su lugar devuelva datos vacíos.

    
respondido por el Julian Knight 05.12.2016 - 22:09
fuente
0

Un lado de la moneda es que no debe tener seguridad por oscuridad, por lo que no debería ser necesario ocultar acciones válidas detrás de las respuestas 404 cuando la acción no se puede ejecutar sin autenticación / autorización de todos modos. Es mucho mejor devolver solo algo similar a 401 No autorizado. Por otro lado, tiene razón, esto probablemente permitirá el mapeo de su API, que también puede mitigar, por ejemplo, limitando las solicitudes incorrectas.

Su estructura de API probablemente no sea un gran secreto de todos modos (no debería serlo), los consumidores ya lo saben, o si es algo así como una API para su propia aplicación móvil (u otra), las comunicaciones de monitoreo revelarán rápidamente Llama a un potencial atacante. Si lo consume un SPA o una aplicación móvil (algo que se le da al cliente), la ingeniería inversa también revela la API.

Además, si hay una decisión de autorización sobre llamadas válidas, probablemente será posible usar un ataque de tiempo para averiguar qué llamadas son válidas y qué llamadas forjan la respuesta 404, porque la decisión de autorización tomará algún tiempo.

Por lo tanto, creo que hay un beneficio muy pequeño en falsificar 404 en llamadas no autorizadas pero de otra manera válidas, y hace que la API sea menos utilizable (pero eso no es una pregunta de seguridad).

    
respondido por el Gabor Lengyel 06.12.2016 - 00:30
fuente

Lea otras preguntas en las etiquetas