Sto discutendo con gli sviluppatori durante la creazione di un'app Web che coinvolge utenti, contenuti generati dagli utenti, un'area di amministrazione, API e contenuto statico.
Chiunque è in grado di accedere alla maggior parte delle informazioni del modello come il modello di account utente in cui gli utenti visualizzano e aggiornano le proprie informazioni, l'url del modello richiede scavi molto poco da trovare e nessuna autenticazione da richiedere. Lo stesso vale per la maggior parte dei modelli di amministrazione, nessuno dei quali funzionerà correttamente senza l'autenticazione corretta ma è ancora accessibile per la lettura.
Ciò consente a chiunque (in particolare agli utenti autenticati) di acquisire una solida comprensione di come funzionano l'app Web e le API. Prevenire l'accesso a queste informazioni fornirebbe solo un livello di oscurità in quanto i metodi API e le funzioni interne continuerebbero a funzionare allo stesso modo: le persone dovrebbero solo fare più ipotesi.
Attualmente i nostri ragionamenti sono,
Sì, dovremmo impedire l'accesso : fornire solo le risorse necessarie, qualsiasi altra cosa incoraggerà un comportamento dannoso.
No, non dovremmo impedire l'accesso : è un sacco di lavoro extra, aggiunge complessità e se abbiamo un problema di sicurezza questo fornirebbe solo oscurità.
Quindi la mia domanda è:
should we (and do others) prevent access to this type of non-sensitive information?
Dopo un'ulteriore discussione, qualcuno ha suggerito questa politica da incubo:
le risorse grafiche, come l'icona di disconnessione, dovrebbero essere disponibili solo per gli utenti autenticati e le origini che dovrebbero visualizzare l'icona.