Regola n. 1 di sicurezza: se qualcuno ha accesso alle informazioni, ha accesso a tali informazioni
Quella tautologia è fastidiosa, ma è vera. Se si dà accesso a un individuo, questi hanno accesso ai dati. Per gli utenti, questo di solito significa controllo degli accessi, ma per gli sviluppatori ... beh ... sono quelli che devono scrivere il controllo degli accessi.
Se questo è un grosso problema per te (e sembra che lo sia), considera la possibilità di creare sicurezza nel tuo software. Un modello comune è la progettazione di software sicuro a strati. Al livello più basso, un team di sviluppo affidabile progetta software che gestisce il controllo di accesso più semplice. Tale software è validato e verificato da quante più persone possibile. Chiunque progetta quel codice ha accesso a tutto, quindi la fiducia è essenziale.
Successivamente, gli sviluppatori possono creare un controllo degli accessi più flessibile su quel livello principale. Questo codice deve ancora essere V & Vd, ma non è altrettanto rigoroso perché puoi sempre fare affidamento sul livello principale per coprire gli elementi essenziali.
Il modello si estende verso l'esterno.
La parte difficile, in effetti l' arte di progettare questi sistemi, è come costruire ogni livello in modo che gli sviluppatori possano continuare a sviluppare e eseguire il debug pur garantendo alla tua azienda la sicurezza che ti aspetti. In particolare, dovrai accettare che il debug richiede più privilegi di quanto pensi, e il tentativo di bloccarlo provocherà alcuni sviluppatori molto arrabbiati.
Come soluzione laterale, prendere in considerazione la creazione di database "sicuri" a scopo di test in cui gli sviluppatori possono eliminare tutti i meccanismi di sicurezza e eseguire il debug serio.
Alla fine, sia tu che i tuoi sviluppatori dovete comprendere un principio chiave di sicurezza: tutta la sicurezza è un equilibrio tra sicurezza e usabilità. È necessario colpire il proprio equilibrio come azienda. Il sistema non sarà perfettamente sicuro e non sarà perfettamente utilizzabile. Tale equilibrio probabilmente si sposterà anche man mano che la tua azienda cresce e / o le esigenze degli sviluppatori cambiano. Se sei aperto a questa realtà, puoi affrontarla.