突发,小红书开发者后门被破解?!

朋友们又来吃瓜了,这次小红书出现的事故我认为比服务器崩掉严重 100 倍!相当离谱!

事故现场

6 月 18 日下午 1 点,小红书隐藏的后门竟然被人挖出来了!进入 APP 个人主页 => 打开设置 => 连续点击标题多次 => 输入口令 ,然后竟然就进入了开发者模式?!

解释一下,开发者模式是应用中隐藏的高级设置,主要方便开发者在开发、调试和优化应用时,更深入地了解和控制设备系统

哦豁,这下完了,普通用户都能进入开发者模式,虽然对普通用户影响不大,但关键在于,任何让普通用户能够访问开发者权限的设计,本身就违反了最基本的安全原则

我刚看到这个消息的时候,手里的养肾茶差点喷出来。作为一个写了 9 年代码的老程序员,这种事故我是真的头一次见。

因为这次事故的严重性,我甚至都只敢先给官方反馈、然后等到官方修复后再发布这期内容。。。


进入开发者模式后,小红书的业务划分直接一览无遗!

每个菜单下都有一大堆普通用户根本看不懂的设置,你就知道这玩意泄露出去对用户的影响并没那么大。很多功能都是用来调试程序的,比如什么手动模拟堆栈溢出、闪退、程序崩溃等等,这些即使普通用户发现了,也只能自娱自乐。

但有些设置,在程序员眼里可就没那么简单了。。。

先来看个最炸裂的。在社交菜单的社交数据库下,我可以直接执行 5w 条数据的批量插入,而且竟然 直接把数据库表的结构给曝出来了 ?!我敢打赌,小红书的竞争对手、还有学技术的同学都在疯狂截图。这现场教学,可比任何技术分享都直接。

而且整个开发者模式的菜单和各种眼花缭乱的功能设置,透露着大厂雄厚的技术底蕴,本身就是一个很好的学习案例,相当于 "开源了" 自己开发者工具的架构设计。还有很多功能设置以及调试日志也能不经意地透露出一些信息,有水平的程序员顺着这些信息,就可能把小红书的一些技术实现摸清楚。

这里考虑到暴露太多信息不太好,就不给大家一一演示了。

所以这次事故虽然没有影响用户,但从信息泄露的角度,我觉得是非常严重的。至少我可以给它评一个 P0 级事故 ,屏幕前的朋友们,你们觉得呢?

技术分析

介绍完了事故,我来给大家分析一下背后可能的原因。

唉,大概率是个低级到不能再低级的错误!

首先,这个开发者模式功能相当完整,连数据库表结构都能看到,这种级别的调试功能,只应该在内部测试环境出现,就像厨师在后厨做菜,绝对不应该把做菜的工具端到客人面前对吧。所以一定是 开发环境的代码或配置泄露到了生产环境 ,比如写代码时把 环境配置搞错了 !线上生产环境也开启了开发者工具。

复制代码
// 错误示例
if (isProduction) {
   showDebugPanel = true; // 这里应该是 false!
}

当然,这种可能性有点低,代码里这么写怎么可能通过审核呢?也不至于粗心到这个程度吧?

再结合网友提供的一些信息,IOS 和安卓都是某些版本能进后门、有些进不去,而且被修复的时间和表现不同。这说明什么呢?不同版本的 APP 肯定是独立构建和发布的。

正常情况下,大厂构建 APP 的流水线会有明确的环境区分:

  • 开发环境:各种调试工具、后门、日志输出

  • 测试环境:部分调试功能,但比开发环境收敛

  • 生产环境:所有调试代码都应该被编译时移除或禁用

我觉得使用 流水线构建 APP 时,配置项填错 的可能性更大,可能是某个倒霉的实习生,天真地以为开启这个后门便于线上排查问题呢,所以生产环境使用了开发环境的配置。这样打出来的包名虽然是正式版本的,但里面有一些功能可能是异常的。反正我不相信有人蠢到不小心把内部测试用的包发布到了应用商店。

此外,还有一种可能性,就是做 A/B 测试时写错了配置,把内部员工的标识给了所有普通用户。不然我也不是很理解为啥普通用户拿个弱口令密码就能进入调试?

紧急响应

值得夸奖的是,小红书的应急响应速度还是很快的,截止到我做这期内容,大概 4 个多小时,就不能再通过原密码进入后门了。

诶?明明我们也没更新 APP,为啥突然密码失效了呢?

其实这个很简单,密码不可能写死在 APP 本地,一定是存在服务端数据库或者配置中心里,只要修改下保存的密码,自然无法登录。不幸中的万幸啊,要是真把密码写死在了 APP 本地,我不更新 APP,不就一直是开发者了?好家伙,免费的测试劳动力是吧?

最后想说的话

说实话,作为程序员,我对小红书团队还是有点同情的。这种事情在大厂其实并不少见,只是很少被用户发现而已。话说这次怎么能被发现的?

唉,到底是怎么了,这么大的团队还会犯这么低级的致命错误?世界真是一个巨大的草台班子。

这也提醒我们所有技术人:再小的配置也要谨慎,高端的 Bug 往往只需要最简单的代码。

我估计这个 618 晚上,小红书的技术朋友们又不好过了呀。。。

如果你也是程序员,欢迎在评论区聊聊你对这次事故的看法;如果你是普通用户,希望我的分析能帮你理解技术故障背后的原理,吃瓜吃的更懂。

记得点赞关注鱼皮,下次再有翻车,我继续带大家从技术角度吃瓜!好吧,我希望世界和平~

更多编程学习资源

相关推荐
DogDaoDao4 小时前
【GitHub】WorldMonitor:一个工程极致主义的实时全球情报仪表盘深度解析
python·程序员·架构·github·go语言·worldmonitor·实时全球情报
zguigo5 小时前
RabbitMQ 从入门到实战:三天掌握消息队列核心与应用
程序员
字节逆旅7 小时前
有哪些工作不可以交给AI
人工智能·程序员
大数据点灯人1 天前
【AI编程】Vibe Coding 模型选型:越贵越好吗?效果/速度/成本平衡指南
编程·ai编程·claude·codex·vibe coding
AI小码1 天前
把动作「画」给视频世界模型,跨本体双向推演,李飞飞参与
大数据·人工智能·算法·ai·大模型·音视频·编程
程序员cxuan1 天前
Loop 还没玩明白,Graph Engineering 又火了。
人工智能·后端·程序员
谢文峰1 天前
Graph Engineering 是新范式,还是 AI 圈的又一个新词?
程序员
程序员海军1 天前
一个 AI 应用开发程序员的一天,都在屏幕前忙些什么?
前端·后端·程序员
程序员cxuan1 天前
Opus 5 深夜炸场,价格还挺香。。。
人工智能·后端·程序员
用户852495071841 天前
React 组件化思想实战:用 Todo App 讲透“谁管数据,谁管界面”
程序员