Closed dkvirus closed 5 years ago
对于那些在用 公羊阅读 的小伙伴先道个歉,弄丢了你们的数据,实在抱歉。
公羊阅读
对于那些乱调用删除接口的小伙伴也表示感谢,谢谢你们给我机会去完善系统安全设计。
昨天晚上看小说,发现书架里莫名其妙多了些没有收藏过的小说,查看数据库,发现 gysw_shelf 这张表被删掉了超过一半的数据。
gysw_shelf
目前猜测是有人在源码里看到了删除书架这个接口,由于接口设计缺陷,是根据 id 删除数据的,而 id 保存的是自增长的数字,那么破坏者可以随意尝试删除 id 为 1、2、5 的数据。
教训一: 在公网运行的系统 id 永远不要用自增长的数字,可以使用随机字符串。 教训二:接口要做认证和授权。用户只有登录之后才能操作关于自己的数据,不能操作其它用户的数据。这样破坏者最多只能删除自己的数据,无法恶意删除他人的数据。 教训三:操作日志。这个太关键了,哪个用户调用了哪个接口,方便找出不怀好意的人。 教训四:数据库备份。不能因为是个人项目就忽略备份,你永远无法预测哪一天你的数据就会丢失。
教训一: 在公网运行的系统 id 永远不要用自增长的数字,可以使用随机字符串。
教训二:接口要做认证和授权。用户只有登录之后才能操作关于自己的数据,不能操作其它用户的数据。这样破坏者最多只能删除自己的数据,无法恶意删除他人的数据。
教训三:操作日志。这个太关键了,哪个用户调用了哪个接口,方便找出不怀好意的人。
教训四:数据库备份。不能因为是个人项目就忽略备份,你永远无法预测哪一天你的数据就会丢失。
小程序紧急修复,目前已经提交最新版本,审核中,估计下午可以看小说啦~
程序漏洞有待完善,数据库性能也需要提速一波,接下来事多的一逼~抗住。
《MariaDB 入门很简单》 第 16 章介绍备份,第 17 章介绍日志。
服务器准备写个定时任务,自动执行数据库备份任务,超过 30 天的备份文件自动删除。
对于那些在用
公羊阅读
的小伙伴先道个歉,弄丢了你们的数据,实在抱歉。对于那些乱调用删除接口的小伙伴也表示感谢,谢谢你们给我机会去完善系统安全设计。
起因
昨天晚上看小说,发现书架里莫名其妙多了些没有收藏过的小说,查看数据库,发现
gysw_shelf
这张表被删掉了超过一半的数据。分析
目前猜测是有人在源码里看到了删除书架这个接口,由于接口设计缺陷,是根据 id 删除数据的,而 id 保存的是自增长的数字,那么破坏者可以随意尝试删除 id 为 1、2、5 的数据。
教训