Códigos de estado de HTTP: consideraciones de seguridad [duplicado]

0

Estoy diseñando un marco de autorización y ahora estoy pensando en los códigos de error que debo devolver cuando alguien intenta acceder a un recurso y no tiene los permisos necesarios. Estos son mis pensamientos hasta ahora:

  1. caso: el usuario no está autenticado, se le ve como "anónimo" - > Aquí creo que 401 sería el código de estado correcto, de modo que el usuario tenga la oportunidad de autenticarse.

  2. caso El usuario ya está autenticado. Volvería 404 NO ENCONTRADO. RFC2616 indica que si no queremos revelar exactamente por qué se rechazó la solicitud, 404 es una buena manera de proceder.

También estoy pensando en anunciar otro caso para el usuario: ADMIN. Si ADMIN no está autorizado, debe recibir respuestas personalizadas, para que sepa exactamente cuál es el problema. ¿Qué piensas sobre esto? ¿Tiene sentido? ¿Cómo podría alguien explotar esto?

¿Crees que es mejor usar 404 para todo o que diferenciarías entre 403 y 404, y por qué?

¿Hay alguna buena literatura sobre este tema? (Ya he buscado y no he encontrado nada concluyente)

    
pregunta user3464679 15.04.2014 - 13:52
fuente

1 respuesta

1

Creo que RFC 2616 es bastante claro:

  

10.4.4 403 Prohibido

     

El servidor entendió la solicitud, pero se niega a cumplirla.
  La autorización no ayudará y la solicitud NO DEBE repetirse.
  Si el método de solicitud no era HEAD y el servidor desea hacer
  Por qué no se ha cumplido la solicitud, debe describir el   Razón de la negativa en la entidad. Si el servidor no desea   Poner esta información a disposición del cliente, el código de estado 404
  (No encontrado) se puede usar en su lugar.

Entonces realmente depende de usted si desea agregar información adicional (la "razón del rechazo") si la solicitud fue realizada por un administrador.

Pero realmente, ¿no está su administrador no autorizado para ver el recurso solicitado? Creo que ese es el caso, y si tengo razón, la respuesta debería ser 401 Unauthorized .

Desde 10.4.2. 401 no autorizado :

  

[...] Si la solicitud ya incluía las credenciales de autorización, entonces el 401
  La respuesta indica que la autorización ha sido denegada para aquellos
  cartas credenciales. [...]

    
respondido por el Steven Volckaert 15.04.2014 - 14:01
fuente

Lea otras preguntas en las etiquetas