You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

实现Passkey登录时如何防范用户枚举攻击?

Passkey登录的用户枚举风险与防范方案

确实,你描述的这种两步式Passkey登录流程存在用户枚举攻击的风险——攻击者可以通过输入不同用户ID后页面的差异,批量判断哪些账号是已注册且启用了Passkey的,进而针对有效账号发起后续攻击。以下是几种实用的防范手段:

  • 统一第一步的反馈信息
    不管输入的用户ID是否有效,前端都返回完全相同的提示内容,比如“请查看你的设备或邮箱,按照指引完成登录”。后台逻辑区分处理:如果是有效用户,触发Passkey验证请求或发送登录验证邮件;如果是无效用户,静默跳过后续操作,不返回任何差异提示。攻击者无法通过前端反馈判断用户ID是否存在。

  • 强制统一响应延迟
    对所有第一步的用户ID校验请求,设置相同的响应延迟(比如1-2秒)。避免攻击者通过响应速度差异枚举账号——通常有效用户会触发后台数据库查询,响应速度可能比无效用户慢,统一延迟可以抹平这个差异。

  • 隐藏Passkey启用状态的前置提示
    不要根据用户ID是否启用Passkey展示不同的第二步界面,而是统一显示包含所有登录选项的页面,比如“选择登录方式:Passkey验证 / 密码登录”。当用户主动选择Passkey后,后台再校验该账号是否启用了Passkey,若未启用再提示“该账号未设置Passkey,请切换至密码登录”。这种方式把差异延迟到用户主动操作后,避免攻击者直接通过第一步后的页面变化判断账号有效性。

  • 添加验证码与速率限制
    在第一步输入用户ID时,引入验证码(如行为验证码),同时对同一IP地址的请求进行速率限制(比如1分钟内最多允许5次请求)。从源头减少攻击者批量测试用户ID的可能性。

这些方案可以组合使用,比如“统一反馈+速率限制”的组合,能大幅降低用户枚举攻击的风险。

内容的提问来源于stack exchange,提问作者Matthias Wimmer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 23:02:45