笑掉大牙!某APP竟自带撞库功能,这代码也是没谁了
最近冲浪的时候看到一张截图,真是让我一愣一愣的,看完忍不住想给那位开发者磕一个:您是懂“用户体验”的,更是懂“黑灰产”业务的。
截图显示该APP登录逻辑之离谱,建议立马开除
该代码逻辑被吐槽为“黑客工具集成进了产品”
这事儿有多离谱呢?大概就是 APP 自带“撞库”功能。
什么是“撞库”?先给小白科普一下
很多朋友可能觉得“撞库”这个词离自己很远,其实它原理很简单。现在的互联网服务太多,大部分人的习惯是“一套密码走天下”(或者两三套轮换用)。
黑产手里有各种以前泄露出来的数据(比如某论坛泄露的账号密码库)。他们拿到这些数据后,不会直接去偷钱,而是拿这堆账号密码去尝试登录淘宝、支付宝、或者是某公司的内部系统。
- 如果你用了 123456 这个密码在 A 网站注册,A 网站泄露了;
- 黑产拿着账号+123456 去试 B 网站的登录;
- 结果因为你也用 123456,B 网站也就被攻破了。
这就是撞库。本质上它是利用了人的懒惰(重复使用密码)和系统的漏洞(防刷机制弱)。
这次翻车的 APP 做了什么?
正常 APP 的登录逻辑是:你在输入框输密码 -> 后端拿你输入的密码哈希值比对数据库 -> 对上了就放行。
而图里这位人才写的逻辑大概是:你在输入框输密码 -> 后端不仅比对自己数据库,还拿着你的账号密码悄悄去试别的网站(比如隔壁竞品) -> 嘿,那边能登上?那我这边也给你放行(或者偷偷存下来)。
我直接好家伙!这哪是写代码,这简直是把“黑客工具”直接集成进了产品里。建议立马查出这位作者,如果不开除,建议查查是不是老板派去竞品搞破坏的卧底。
为什么说这种操作是“死罪”?
1. 极其严重的法律风险 不管你是为了方便用户“一键登录”,还是想搞点竞品数据,未经授权去访问第三方服务器,甚至利用用户凭证去探测,这在很多国家都触犯了《网络安全法》或刑法里的非法获取计算机信息系统数据罪。公司一旦被查,产品下架都要算轻的,搞不好 CTO 和法务都要进去踩缝纫机。
2. 害了用户也害了自己 对于用户来说,我把密码交给你,是信任你保管好,不是让你拿着我的钥匙去开别人家的门,要是顺便把我门锁换了怎么办? 对于产品方来说,你后台去试别的网站,不仅暴露了自己的业务逻辑,还容易被对方的安全风控系统封杀 IP。一旦对方发现某个 IP 段疯狂尝试登录,反手就是一个全网封禁,得不偿失。
3. 暴露了烂到极致的代码 Review 机制 这种级别的恶意代码或者是极度愚蠢的逻辑,能上线说明什么?说明这家公司根本就没有代码审核,或者审核的人也是同款水平。这种团队做的产品,安全问题绝不仅仅是撞库这一个点,指不定其他地方还有多大的窟窿。
遇到这种烂码,开发者该怎么办?
如果你不幸接手了这种祖传代码,或者在 Code Review 时发现了类似骚操作:
- 立刻止损: 不用犹豫,直接回滚或下线相关功能。
- 全量排查: 检查日志,看看已经泄露了多少数据,有没有触法风险,该报备报备。
- 重构逻辑: 登录就登录,老老实实做校验。想搞第三方登录请去走正规的 OAuth 2.0 授权流程,别搞这种偷偷摸摸的小动作。
写在最后:安全意识是底线
做开发这几年,见过太多因为“方便”、“赶进度”而留下的坑。但涉及用户隐私和安全的底线,一步都不能退。
撞库是黑客的攻击手段,绝不是正规软件该有的功能。希望各位兄弟写代码的时候多带点脑子,也别把用户当成免费的“肉鸡”。这种把雷埋在产品里的操作,真的会让人笑掉大牙的。
(顺便吐槽一句,这种能写出这种代码的“人才”,简历上敢写精通 Java/Go/Python 吗?)
评论已关闭