这一节讲的是系统的安全性问题,作者分了几个原则介绍系统安全性
将攻击面的面积最小化
越复杂的代码越容易产生更多的副作用,比如上周刚刚发生的创建额外费用报错,就是因为在创建ChargeDetail的最底层代码中额外创建了一条消息发送记录导致的。越多的副作用就会导致越多的攻击机会。
此外还需要注意的是不能相信UI传入的数据,非常经典的就是前一段时间Log2j爆出的漏洞。
这里还有一个比较有意思的问题,我们的我们的系统中暂时想不到这种问题。需要注意提示信息不能太“尽职”,比如报出“该密码已被其他用户使用”的错误。
最小特权原则
系统运维中要注意尽量少使用root账号。软件项目要有完善的权限系统。这部分我们的系统就做的很完善,加了非常多的权限,以及可访问分公司、可访问供应商等字段。
安全的默认值
比如说密码的输入框,输入的值要显示成星号
敏感数据要加密
个人身份信息、财务数据等不能明文存在系统中。对于这一点我们之前已经做过相关的Story了。
还有对于API密钥、SSH密钥等应该单独管理,通常使用配置文件和环境变量。
维护安全更新
这里强调的是如果我们的依赖爆出了漏洞,则应该立即升级或者打补丁。像之前的Log4j我们也是很快升级了一个版本。
网友评论