一个请求能带上上百组口令的接口方法,为什么让登录失败锁定拦不住

📅 2026-10-11 👁️ 0

聊登录爆破防护时,一个请求能带上上百组口令的接口方法,为什么让登录失败锁定拦不住,常被低估。问题不在口令校验松紧,而在它允许把成批参数塞进同一次调用:服务端逐条执行,防御侧的失败计数却按请求推进。WordPress 从 3.5 起默认开启 XML-RPC,界面上的开关后来也被移除,遗留的批量方法 system.multicall 因此长期暴露在公网上。

批量方法把爆破成本压到几个请求

system.multicall 的初衷是减少往返:客户端把多个调用打包成一个数组发过去,服务端依次执行后一次性返回结果。对正常使用者省的是时间,对攻击者省的是请求数。公开资料给的量级很直白,单个命令里可以尝试数百个口令,仅三四个 HTTP 请求就能试完上千组口令组合。

经济账由此改写。逐条提交时,攻击者要承担建连与限速的开销,防御方也更容易在连接层看出异常;打包之后,同样的猜测量用极少的请求就能完成,暴露面还更低。

按失败次数计数的锁定追不上凭据数

多数锁定策略的口径是失败事件数:某个账号或来源地址连续失败若干轮就锁定一段时间。它默认了一个前提,一次请求只携带一组凭据。批量方法恰好打破前提,上百组错误凭据归进同一次调用,计数器最多前进一格,阈值追不上猜测速度。

要在这种入口面前仍然有效,计数就得下沉到凭据层:按用户名分别累计失败次数,来源维度按可疑凭据的条目数累计,而不是按连接数。限流同理,配额按调用条目结算,否则打包请求一次就能把额度耗尽。

同一机制还能被用来做放大攻击

批量之外,这类遗留接口里还常有会主动对外发起请求的方法,pingback 就是一例。攻击者把受害站当跳板,让它向目标发出大量回显请求,来源是真实站点,在防御设备看来链路完全正常。历史上出现过把约 2500 个站点变成发起拒绝服务攻击的僵尸网络的情况,效果来自反射与叠加:被打的一方看到的是海量正常网站的访问,而不是一个攻击源。

对被动卷入的站点来说,代价是出口带宽被吃满、地址进了黑名单、信誉受损,自身数据却一个字节没丢。收口不只是为了防盗号,也是为了不当别人的跳板。

关闭还是拦截:接口收口的层次与取舍

要不要保留这类入口,取决于还有没有合法调用方依赖它。彻底关闭最省心:在路由层移除端点,或在应用入口直接拒绝相关方法名,代价是老的远程发布与客户端集成一起失效。确有依赖时,更常见的做法是收窄公网能力面,按路径拦截、只放行特定来源,或把批量方法从允许列表里剔除,只留必要的单调用。

层次上,应用内拦截更可靠,因为路径规则容易被大小写、编码和重写差异绕过;网关或重写层的封锁胜在生效快,不必发版就能先止血。两处都收口才算关闭。相对照之下,较新的接口设计倾向把能力面收紧:AnQiCMS 以 JWT 承载后台鉴权,接口层的能力面以公开接口为准,并内置针对 SQL 注入与 XSS 的防护,它不提供把上百组凭据打包提交的遗留方法,但按请求计数与按凭据计数的差异仍值得留意:攻击面大小往往比阈值调多低更关键。

常见问题

问:登录锁定已经开启,还要管遗留的批量接口吗? 要。锁定按失败事件计数,批量入口让上百组错误凭据只算一次事件,两者不在同一口径上。先确认站点有没有能打包提交凭据的路径,再谈阈值调多低。

问:直接关闭会不会伤到正常业务? 取决于调用方。远程发布、老客户端之类的集成可能仍依赖这类协议。稳妥顺序是先统计相关路径的合法调用量,再决定彻底关闭、按来源放行还是只剔除批量方法。

问:拦在网关层和应用层,选哪个? 不必二选一。网关或重写层的封锁能在不改代码时立刻止血,应用层的拒绝不依赖路径写法的一致性,两者失效方式不同,同时设置才把缝隙压小。

问:放大攻击打的是别人,站点为什么要负责? 因为跳板身份是被动承担的:出向流量、被目标拉黑、被通报都落在这台服务器上。把对外发起请求的方法限制在必要范围内,等于把自己从别人的攻击链里摘出来。

相关文章

综述看完几十项生成式优化研究后说换个引擎技巧就不成立,站上的做法怎么自证

一篇覆盖 2023 到 2026 年研究的综述审阅了数十项生成式引擎优化实验,结论是主题相关性与上下文位置最可复现,通用技巧换个引擎就难以迁移,且没有哪一项技巧被证实有稳定、长期、跨平台的效果。内容站要用的,是把别人测的结论换成自己站上的对照验证。

2026-10-11

AI 网关把网页检索做成接口对外提供,内容被模型取到要多过一道谁的清单

当网页检索被做成网关上的接口,内容被模型取到就多经过一道网关侧的清单。Cloudflare 在 2026 年 10 月初把检索能力接到 AI 网关上,并要求结果带上被抓取内容的来源地址。对内容站来说,可发现性不再只由搜索引擎抓取决定,站点说明文件与抓取排除规则要在链路里各就各位。

2026-10-11

静态站点生成器的构建缓存分成哪几类,缓存有效期能不能设成永不过期

静态站点生成器在构建期把资源、图片、模块等分成多类缓存,各自可设目录与保留时长,取负值表示永不过期,部分默认按小时过期。构建慢时先确认缓存落在哪个目录,再决定是延长保留还是按版本清理。

2026-10-11

默认模板跟着前端框架升了一个大版本,站里的样式和脚本要跟着改哪些

默认模板跟随前端框架升级时,改动集中在类名结构、插件依赖与初始化写法三处。以同类系统公开的更新记录为例,前台框架升大版本时移除了两个依赖库,后台脚本库跨版本升级还需要同步界面组件的样式修正,站点的自定义模板要按同样口径逐项回归。

2026-10-11

跨域隔离要同时设两个响应头,第三方图片和脚本为什么会突然加载不出来

开启跨域隔离要同时设置两个响应头,一个管本站文档能取哪些跨源资源,一个管窗口引用关系。设为要求显式许可之后,页面里的第三方图片和脚本若没带上跨域标记就会加载失败,排查要从来源标记与资源自身的放行两头一起看。

2026-10-11

响应头里写 preload 有时不生效,哪几种关系类型在 HTTP 头里才可靠

资源预取既能写在页面标签里,也能放进 HTTP 响应头,但多数链接关系类型放进响应头并不生效,真正可靠的是预连接与预加载,还能和早期提示配合。首屏要提前取的资源该由哪一层给、URI 该怎么包,值得按静态文件的实际产出方式定。

2026-10-11

除了严重度评分,还有一个预测漏洞被利用概率的分数,怎么用

严重度评分回答的是影响有多大,另有一类分数回答的是这个漏洞接下来被人真正利用的概率有多大。EPSS 每天为每个已公布漏洞给出概率与百分位,官方建议把它和严重度评分、在野利用清单一起来排处置队列。

2026-10-11

新链接即时通知搜索引擎的机制,支持名单里现在有哪几家

除了提交站点地图,还有一类即时通知机制把新增、更新或删除的链接直接告诉参与的引擎。它的支持名单以官网为准,名单外的引擎仍走各自通道。对中文站来说,站点地图负责全量、主动推送负责增量,把新链接尽快交到对的引擎手里比反复提交更实际。

2026-10-11