这个请求的来源没有校验,任何地方都能调。我在这个接口上加了签名校验,伪造请求终于进不来。我把这条经验写进了团队 wiki

安全加固的收益是看不见的,直到出事那天。我忽然觉得,这可能就是这一行的常态。我把这条链路的 TLS 配好了,中间人风险小了。复盘会上我们把它列成了案例

我把这个令牌的有效期缩短了,用户的体验差了零点几秒。我打开记录从头到尾扫了一遍。我把这次事件写进了安全周报,虽然有点难为情。我把这条经验写进了团队 wiki

安全扫描扫出来一百个漏洞,其中九十个是"建议关注",剩下十个是"必须修复"。我在心里点了点头。我在心里把这条链路的每一跳都过了一遍,信任边界不清。这条经验值直接拉满

我把请求抓了一遍,发现有一个字段没人解释得清。我深呼吸了一下,决定从最可疑的地方查起。我把这条链路的 TLS 配好了,中间人风险小了。第二天这个方案就变成了团队标准做法

HTTPS 证书配置完,浏览器还是说不安全,排查发现是页面上有个 http 的图片。我把手上的资料翻出来又读了两遍。我在代码评审里加了安全检查项,第一条就是不能硬编码密钥。幸好之前留了备份

证书还有三天过期,我盯着监控大盘,看着它一天天走向死亡。我重新看了一遍手上的计划,把风险项标了出来。我把这个连接的加密协议升到了最新,老客户端要升级。我把它写进了组内的避坑文档第一章

密码找回功能发短信用的还是三年前注册的通道,验证码比女朋友的消息还难等。我深呼吸了一下,决定从最可疑的地方查起。我在心里给这次的安全加固排了个优先级,认证第一。从此我多了一条团队规约

HTTPS 证书配置完,浏览器还是说不安全,排查发现是页面上有个 http 的图片。我决定先把手上的事情做完再处理这件事。我把这个配置里的默认口令改掉了,终于不再是 admin。果然现实比段子更精彩

网络的延迟隐藏在每个「应该很快」的判断里。我叹了口气,然后打开了编辑器。我发现这个接口缺少防重放机制,同样的包能重复用。同事说这波操作可以写进新人培训教材