Estoy teniendo una discusión con los desarrolladores a medida que desarrollamos una aplicación web que involucra usuarios, contenido generado por el usuario, un área de administración, API y contenido estático.
Cualquier persona puede acceder a la mayoría de la información de la plantilla, como la plantilla de la cuenta de usuario , donde los usuarios verían y actualizarían su información. La url de la plantilla requiere muy poca búsqueda y no es necesaria la autenticación. Lo mismo ocurre con la mayoría de las plantillas de administración, ninguna de las cuales funcionará correctamente sin la autenticación correcta, pero sigue siendo accesible para su lectura.
Esto permite que cualquier persona (especialmente usuarios autenticados) obtenga una comprensión sólida de cómo funcionan la aplicación web y la API. La prevención del acceso a esta información solo proporcionaría una capa de oscuridad, ya que los métodos de API y las funciones internas seguirían funcionando de la misma manera: las personas solo tendrían que hacer más suposiciones.
Actualmente nuestros razonamientos son,
Sí, deberíamos impedir el acceso : solo proporcione los recursos necesarios, cualquier cosa más fomentará el comportamiento malicioso.
No, no deberíamos impedir el acceso : es mucho trabajo adicional, agrega complejidad y, si tenemos un problema de seguridad, esto solo brindaría claridad.
Así que mi pregunta es:
¿deberíamos ( y hacer otras ) impedir el acceso a este tipo de información no confidencial? información?
Después de una discusión adicional, alguien sugirió esta política de pesadilla:
los recursos gráficos, como el icono de cierre de sesión, solo deben estar disponibles para los usuarios autenticados y los orígenes que se espera que muestren el icono.