Ho sviluppato software per oltre 20 anni. In quel periodo ho lavorato in aziende Fortune 100 che avevano requisiti di sicurezza molto specifici sviluppati da professionisti della sicurezza dedicati e piccole aziende senza alcun concetto di requisiti di sicurezza.
Mi sembra che molto spesso, per la maggior parte del tempo, la politica di sicurezza de facto finisca per essere creata quasi incidentalmente dai programmatori e strettamente integrata nel prodotto finito. La maggior parte delle aziende sembra semplicemente acquistare qualcosa e utilizzare qualunque sia la regola predefinita / hardcoded senza ulteriori considerazioni.
La mia domanda è, in un mondo perfetto, quale dovrebbe essere il ruolo di uno sviluppatore di applicazioni aziendali nel determinare la politica di sicurezza per il loro software? Un prodotto dovrebbe implementare "best practice" ironclad o concentrarsi sulla sua configurabilità e consentire alla società / organizzazione che consuma di determinare la propria politica?
(Sto parlando di cose come se e quando è richiesta l'autenticazione a due fattori, i requisiti di complessità della password e quanto tempo sono scaduti e quante password errate possono essere inserite prima di un blocco.)
EDIT:
OK, solo per ribadire, non sto parlando di vulnerabilità reali come XSS o SQL injection, ma policy. Supponiamo per un esempio che non sapevo per quanto tempo una password doveva essere al fine di essere sufficientemente sicura per il mio contesto e mi è consentito solo poche ore per lavorare sul codice di lunghezza minima della password. Sto meglio indagando su quanto tempo è lungo e difficile codificare la mia decisione o codice di scrittura che consente all'amministratore di personalizzarlo da sé?