我已经开发软件超过 20 年了。在那段时间里,我曾在财富 100 强公司工作过,这些公司有非常具体的安全要求,由专门的安全专家和没有任何安全要求概念的小公司开发。
在我看来,很多时候,甚至在大多数情况下,事实上的安全策略最终几乎是由程序员偶然创建的,并紧密集成到成品中。大多数企业似乎只是购买一些东西并使用默认/硬编码规则而没有进一步考虑。
我的问题是,在一个完美的世界中,企业应用程序开发人员在确定其软件的安全策略时应该扮演什么角色?产品应该实施铁定的“最佳实践”还是专注于可配置并允许消费公司/组织确定自己的政策?
(我在这里谈论的是是否以及何时需要双重身份验证,密码复杂性要求以及超时时间以及在锁定之前可以输入多少错误密码。)
编辑:
好的,重申一下,我说的不是 XSS 或 SQL 注入等实际漏洞,而是策略。假设我不知道密码需要多长时间才能对我的上下文足够安全,并且我只被允许几个小时来处理最小密码长度代码。我最好研究多长时间并硬编码我的决定或编写让管理员自己定制的代码?