Sto sviluppando un sistema da utilizzare internamente all'interno di un'azienda, ma probabilmente anche esternamente in futuro. Dal punto di vista degli utenti iniziali del sistema - staff, il programma è open source, in quanto ha accesso al repository in cui è memorizzato il codice. Non hanno accesso alla configurazione del server, ai database e così via.
Il sistema è basato sul web e ci sono diverse classi di utenti, ciascuno con le proprie limitazioni riguardo a ciò che possono vedere e fare. Non ho intenzione di discutere l'esatta autenticazione e i meccanismi di autorizzazione in uso, poiché penso che sarebbe oltre lo scopo della domanda. Supponiamo che uno non sia in grado di ingannare il server nel fare qualcosa che lui o lei non è autorizzato a fare o vedere (in termini di contenuto, come articoli).
Tuttavia, al momento esiste un solo insieme di risorse HTML, JavaScript e CSS scaricate da tutti gli utenti, indipendentemente dai loro diritti di accesso. Ho deciso di non avere versioni separate di tutti i file per ridurre il lavoro necessario.
Con pochi giochetti con i cookie è possibile abilitare l'interfaccia di amministrazione in quanto è comunque inclusa nelle risorse del sito. Puoi vedere come appare e puoi vedere cosa potrebbe fare. Nel frattempo, non puoi effettivamente fare nulla con esso, poiché il server saprebbe che non sei un utente privilegiato e decidi di soddisfare qualsiasi richiesta tu faccia, che normalmente non potresti fare.
Non riesco a trovare alcun problema dal punto di vista dell'usabilità in quanto solo "hacker" si imbatterebbe in un'interfaccia di amministrazione glitch e nessun utente normale.
Sto cercando implicazioni negative dal punto di vista della sicurezza.
Le mie domande sono:
- Quale sarebbe il vantaggio per un utente malintenzionato se fosse in grado di vedere il codice lato client che non è consentito / consentito utilizzare?
- La funzionalità di cui è stata esposta mostra una pratica davvero negativa che dovrei affrontare immediatamente?
- Se ipotizziamo che si tratti di un software aperto (ed è, attualmente, dal punto di vista dei dipendenti), nascondere gli strumenti degli utenti privilegiati sarebbe solo una sorta di sicurezza per oscurità, dal momento che un utente malintenzionato potrebbe comunque controllare il codice sorgente