第 12 节:上线前必须补的安全地基
一个小产品准备公开时,很容易把注意力放在页面上。
首页好不好看。
按钮顺不顺。
功能够不够。
但真正上线前,还有一类事情更重要:安全地基。
它们不显眼,也不适合拿来宣传。
可如果不做,产品就不适合公开。
蜡笔小账本涉及账号和账目数据,所以这一步不能省。
HTTPS 是第一道门槛
只要有登录,就应该上 HTTPS。
没有 HTTPS,用户输入账号密码、浏览器保存状态、接口请求都会让人不安心。
蜡笔小账本后来切到 https://horu.world/jizhang/,并开启全站 HTTPS。
这一步不只是为了浏览器地址栏好看。
它会影响很多地方:
用户访问地址。
飞书回调地址。
定时任务地址。
备份任务地址。
所有地方都要同步到 HTTPS。
只改用户能看到的页面是不够的。
敏感文件不能被外网下载
文件存储的项目尤其要注意这一点。
如果用户账号、账本数据、备份文件直接放在网站目录里,而服务器没有拦截规则,别人可能通过 URL 直接访问。
这不是理论风险。
比如:
users.json
userdata/
备份文件目录。
这些都不应该被外网打开。
所以要在服务器层做 404 防护,让这些路径即使被猜到,也打不开。
功能能用是一回事。
数据目录能不能被下载,是另一回事。
泄露过的 token 要换掉
开发和排查时,token 很容易出现在截图、聊天记录、文档里。
一旦准备公开,就要认真检查。
管理后台密码有没有改。
定时任务 token 有没有换。
飞书 App Secret 有没有暴露风险。
如果某个密钥已经在截图里出现过,就不要继续使用。
换 token 不复杂,但要同步。
配置文件里要改。
计划任务 URL 要改。
文档里的旧 token 要删掉。
否则会出现配置不一致,或者旧 token 还能用的问题。
备份不是等出事再想
记账数据一旦丢失,用户很难接受。
所以公开前要有备份。
蜡笔小账本里有 backup.php,可以配合计划任务定期备份。
这还不够,最好服务器也有整站备份。
一个备份保护数据。
一个备份保护代码和环境。
小产品不一定要一开始就做很复杂的灾备系统,但至少要保证:误删、改坏、服务器出问题时,有东西可以恢复。
安全不等于一次做完
上线安全不是一张清单打完就永远结束。
它更像一种习惯。
每次新增功能,都要问:
有没有新的数据入口?
有没有新的外部回调?
有没有新的文件目录?
有没有新的密钥?
有没有可能被未登录用户访问?
产品越往公开走,这些问题越不能靠感觉。
本节小结
公开前的安全地基,通常不漂亮,但必须做。
HTTPS、敏感文件 404、token 轮换、后台密码、自动备份,这些都不是大公司才需要的东西。
只要产品开始承载别人的数据,它们就是基本功。
下一节,我们会回头看 v2.2 到 v2.3:一个小产品从功能打磨到正式上线,版本号背后到底记录了什么。
FAQ
小产品一定要上 HTTPS 吗?
只要涉及登录、账号、私人数据,就应该上 HTTPS。它是公开产品的基础要求。
文件存储项目最容易忽略什么?
最容易忽略数据文件是否能被 URL 直接访问。用户数据目录、账号文件和备份文件都要做外网拦截。
token 为什么要轮换?
如果 token 出现在截图、聊天记录或文档里,就可能被别人看到。公开前换掉能降低风险。
自动备份有必要吗?
有必要。记账数据属于长期积累,一旦丢失很难补回来。至少要有定期数据备份和服务器整站备份。
安全是不是上线前做一次就够?
不是。每次新增接口、文件、回调和登录相关功能,都要重新检查安全边界。

评论
登录后即可参与讨论 💬
登录 / 注册后评论