Estoy desarrollando un sistema para ser usado internamente dentro de una empresa, pero posiblemente también externamente en algún momento en el futuro. Desde el punto de vista de los usuarios iniciales del sistema: el personal, el programa es de código abierto, ya que tienen acceso al repositorio donde se almacena el código. No tienen acceso a la configuración del servidor, a las bases de datos, etc.
El sistema está basado en la web y hay varias clases de usuarios, cada uno con sus limitaciones con respecto a lo que pueden ver y hacer. No voy a discutir los mecanismos exactos de autenticación y autorización en uso, ya que creo que eso está más allá del alcance de la pregunta. Supongamos que uno no puede engañar al servidor para que haga algo que él o ella no tiene permitido hacer o ver (en términos de contenido, como artículos).
Sin embargo, actualmente solo hay un conjunto de recursos HTML, JavaScript y CSS descargados por todos los usuarios, independientemente de sus derechos de acceso. Decidí no tener versiones separadas de todos los archivos para reducir el trabajo necesario.
Con poca manipulación de las cookies, puede habilitar la interfaz de administración, ya que de todos modos está incluida en los recursos del sitio. Puedes ver cómo se ve y puedes ver lo que podría hacer. Mientras tanto, no puede hacer nada con él, ya que el servidor sabría que usted no es un usuario privilegiado y se negará a satisfacer cualquier solicitud que haga, que normalmente no podría hacer.
No puedo encontrar ningún problema desde el punto de vista de la usabilidad, ya que solo los "piratas informáticos" se encontrarían con una interfaz de administración con problemas y no con usuarios habituales.
Estoy buscando implicaciones negativas desde el punto de vista de la seguridad.
Mis preguntas son:
- ¿Cuál sería el beneficio para un atacante si pudiera ver el código del lado del cliente que no se supone / está permitido usar?
- ¿Tener esa funcionalidad expuesta es una práctica realmente mala que debo abordar de inmediato?
- Si asumimos que este es un software abierto (y es, actualmente, desde el punto de vista de los empleados), ¿ocultar las herramientas de los usuarios privilegiados sería solo una especie de seguridad por oscuridad, ya que un atacante podría verificar el código fuente de todos modos? / li>