需求阶段先问数据
新功能开始前先确认处理什么数据。
【 第 2 步 】
师傅:“工厂准备给会员系统增加‘线上修改配送地址’功能。开发人员已经开始设计页面和接口,但安全不能等到上线前再补。今天我们进入安全开发生命周期,从立项和需求开始,把认证、权限、加密、日志、备份和异常处理逐步写进设计、编码、测试、上线、运行和退役各阶段。
每一条安全需求都要写得足够具体,说明保护对象、谁在什么条件下执行什么操作、系统应该怎样响应、最后留下什么记录。可以把安全开发理解成在盖房子时就把门锁和消防一起设计进去,而不是房子盖完以后再临时补。”

01 · 现场对话
新功能开始前先确认处理什么数据。
安全需求必须能够测试。
外部输入不能直接相信。
上线不是生命周期终点。
02 · 小白做现场笔记
安全不是上线前最后检查一次,而是从需求开始一路跟到退役。
能直接写成测试用例的要求,才算足够具体。
一项重要操作,尽量不要只依赖一道安全措施。
外部送进系统的数据,不能拿来就用,先检查再处理。
开发测试方便,不代表可以随意复制完整生产数据。
代码可以共享,生产密钥和口令不能跟着一起共享。
自己写的代码要管,系统依赖的第三方组件也要管。
03 · 经验和难点
这一站,小白跟随一个会员系统新功能,从需求、设计、编码一直看到了测试、上线、运行和退役。最值得记住的经验是:安全需求越具体,后面的设计、开发和测试越容易验证。初学者最容易遇到的难点,是只写“加强安全”“保护数据”这类模糊要求,却没有明确对象、条件、动作、结果和日志。