撞库这事儿,本质上一句话就能说完:别人在别的地方偷到的一大把账号密码,拿到你这儿挨个试。它不撬锁也不砸门,就是一遍遍按门铃,看哪个门有人应。所以撞库怎么办的第一个答案,不是加带宽、不是换高配机器,而是承认它盯上的是你的登录口——用户登录页、管理员后台、APP 的接口,还有那个很多人早忘了的 /admin.php。

撞库怎么办?先认清它盯的不是服务器
被撞库的时候,服务器负载可能飙得老高,CPU、数据库连接数一起上去,看着像被DDoS。但两者不是一回事。撞库请求长得非常规矩,就是一个正常的 POST,字段名对、格式对,只是里面填的账号密码是别人的。你的防火墙看到的是“合法用户”在登录,顶多频率高了点。想靠堆配置、堆带宽解决,方向从一开始就偏了。云厂商那边一般有WAF或者登录防护,具体能拦到什么程度、哪些要额外开,以服务商控制台和官方说明为准。
还有个常见误会,把撞库和SQL注入、爬虫混成一锅。注入是往参数里塞代码,撞库是老老实实按你的表单提交,内容全是偷来的。爬虫抓的是页面,撞库要的是账号。三种东西的处理方式完全不同,别指望一个插件全包。
它手里那串钥匙,本来不是配你家锁的
那些账号密码的来源,多数是别处的泄露库——某个平台被拖库、某个APP的测试环境没关、某家公司把导出的表格放在了公开可访问的目录里。还有一条链子是专门做这个的:有人收集、有人清洗、有人打包卖。你在公开报道里看到的那些大规模泄露事件,很多时候过一阵就会出现在撞库列表里,快慢不好说,但基本都会来。
什么样的站最招它?账号能换钱的那种。电商能看订单、能薅优惠券,论坛能发广告,SaaS后台能看数据,会员制站点能蹭权益。反过来,一个纯展示的企业官网,登录口只有后台一个,被撞的频次通常低得多——但也别高兴太早,后台恰恰是密码最弱的地方。
日志里那几种痕迹,比报警短信来得早
判断有没有在被人撞,不用等出事。看三样东西:同一个IP在很短时间内试了多个不同账号;同一个账号被一堆不同IP轮着试;以及登录失败的比例突然抬头。前两种是机器干的,后一种是有人在跑分布式。别只看状态码,很多撞库程序会伪装UA、会带上正常的Referer,光看200还是302看不出名堂。
日志在哪看:Web服务器的access log、应用自己写的登录日志、面板上的防火墙记录。MySQL的general log能记全量SQL,但那玩意儿的开销不小,线上别随手开,要开就短时间开着抓完就关。抓到的样本里,重点看登录接口那条URL的参数,账号是不是成批变化。
限速、验证码、失败延迟,先上这三件
真要动手,顺序别搞反。第一步是按账号和IP两个维度做限速,不是只按IP——同一个账号被不同IP试,只封IP等于没封。第二步是连续失败几次之后加验证码,别一上来就弹,正常用户会烦。第三步是失败响应加一点随机延迟,让自动化脚本的节奏乱掉。这三样做完,成本最低、见效最快。
密码那一侧的习惯更值钱:存储用哈希,别自己发明算法;日志里永远不要打印密码字段,哪怕调试;数据库账号给最小权限,读日志的账号不该有写权限。还有一条很容易被忽略——注册和改密的时候提示用户别用常见弱口令,比强制他凑够几种字符有用得多。
后台和API,是最容易漏掉的两扇门
后台的问题不是技术难,是路径太长。默认的 /admin、/wp-admin、/login.php,扫描器字典里都有。改个名、加个IP白名单、能开双因素就开,这三件事做完能挡掉大部分无差别尝试。别把“后台没人知道地址”当安全措施,那只是把门牌摘了,门还在。
API更麻烦,因为它通常没有验证码这道坎。登录接口、短信发送接口、找回密码接口,都是撞库和薅羊毛的重灾区。限速、签名、token有效期短一点,短信接口按手机号加IP双限,别让人拿你的通道刷验证码。这部分做没做,出问题时区别很大。
只封IP这招,现在基本是自我安慰
撞库的人手里代理池不贵,肉鸡也不少。你今天封一批,明天换一批。更糟的是,大企业、学校、运营商NAT后面成千上万人共享一个出口IP,你一封,正常用户一起进不来,客诉先到。真要封,也得结合行为特征:失败率高、账号跨度大、请求间隔过于均匀,这几样凑一起的IP才值得动手。
已经被撞穿了,先做的不是补漏洞
如果异常登录已经发生,先止血:把可疑会话踢掉、临时收紧登录策略、把被登录账号的密码强制重置,再去看那批账号有没有下单、改绑、提现这类高价值动作。用户通知这件事,合规上要不要做、怎么做、多久内做,得看具体法规和行业要求,拿不准就问法务,别自己拍脑袋。事后复盘再补代码,顺序别弄反。
回头可以照着这几条自查:登录接口有没有按账号维度限速、失败几次后有没有验证码、后台路径是不是默认的、日志里有没有明文密码、数据库账号权限是不是给大了、API有没有短信和找回密码的频控、异常登录有没有人定期看。七条里有三条没做到,就别觉得自家站点跟撞库没关系——它挑的从来不是最弱的那个,而是最省事的那个。
【版权声明】:本站内容若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!