Ci sono casi in cui si ha l'opportunità, come sviluppatore, di rafforzare le funzionalità di sicurezza e le protezioni su un software, sebbene possano essere gestite a livello ambientale (ad esempio, il sistema operativo si prenderà cura di esso) .
Dove diresti di tracciare la linea e quali elementi prendi in considerazione nella tua decisione?
Esempi concreti
Gestione utenti è responsabilità del sistema operativo
Non esattamente inteso come funzionalità di sicurezza, ma in un caso simile Google Chrome non consentiva profili separati. La ragione invocata (anche se ora supporta più profili per uno stesso utente del sistema operativo) era che la gestione degli utenti era la responsabilità del sistema operativo.
Disabilitazione dei campi del modulo Web
Una richiesta ricorrente che vedo indirizzata online è che il completamento automatico venga disattivato nei campi modulo. Il completamento automatico non esisteva nei vecchi browser ed era una funzionalità gradita al momento dell'introduzione per le persone che dovevano compilare spesso i moduli. Ma ha anche sollevato alcuni problemi di sicurezza, e così alcuni browser hanno iniziato a implementare, oltre all'impostazione (ovviamente necessaria) nel proprio pannello di preferenze / personalizzazione, un attributo autocomplete
per i campi form
o input
. E questo è stato introdotto nel prossimo standard HTML5. Per i browser che non ascoltano questo attributo, vengono offerti strani hack * , come la generazione di ID e nomi univoci per i campi per evitare che vengano suggeriti in moduli futuri (che viene fornito con un altro gruppo di problemi, come inquinando la cache di riempimento automatico locale e non impedendo che una password venga memorizzata al suo interno, ma probabilmente duplicandone le occorrenze).
In questo caso particolare, e altri, direi che questa è una impostazione utente e che è il desiderio dell'utente e la responsabilità dell'utente per abilitare o disabilitare il riempimento automatico (disattivando completamente la funzione). E se si basa su una politica interna e su un requisito di sicurezza in un ambiente aziendale, sostituisci l'utente con l'amministratore nel precedente.
Suppongo che si possa controbattere che l'utente potrebbe voler accedere ad applicazioni non critiche (o siti) con questa comoda funzione abilitata e le applicazioni critiche con questa funzione disabilitata. Ma poi penso che sia per quello che sono le zone di sicurezza (in alcuni browser), o il segno che è necessario un ambiente / account più sicuro (e dedicato) per utilizzare queste applicazioni.
* Ovviamente non nego l'ingenuità delle persone che erano forzate a trovare soluzioni alternative, solo la necessità di soluzioni alternative.
Domande
Questo è stato un po 'prolisso, quindi credo che le mie domande siano:
- Considerereste generalmente che si tratti della responsabilità dell'applicazione (quindi dello sviluppatore)?
- Dove disegna la linea, se non nel caso "generale"?
Questo è cross-postato da Programmers StackExchange , basato su commento del moderatore .