• 请不要在回答技术问题时复制粘贴 AI 生成的内容
cl76915557
V2EX  ›  程序员

登录接口防重放攻击怎样设计?

  •  
  •   cl76915557 · 1h 3m ago via iPhone · 437 views

    请教各位大神一个登录接口安全问题。 我们大作业 web 系统 账号密码登录的现有设计:客户端先拉取服务端 RSA 公钥,使用公钥加密用户名密码提交登录接口。 我发现这个只能防止密码明文被抓包窃听,无法防御重放攻击,攻击者捕获加密报文就可以反复重放登录。 所以 ai 调研了几个方案 1. 新增 challenge 接口,登录前获取一次性 challenge ,challenge 和账号密码一起加密,消费即作废; 2. 客户端携带 nonce+timestamp 随请求一起加密,服务端校验时间窗口+redis 校验 nonce 防重复。

    想问下线上用户名密码登录场景,哪一种落地更多? challenge 模式两次接口会不会有什么短板?感谢大家。

    11 replies    2026-09-02 12:33:53 +08:00
    dzdh
        1
    dzdh  
       1h 2m ago
    rsa 公钥你弄个 md5 指纹。只能用一次。一次一生成 rsa 公钥 :doge:
    Liu6
        2
    Liu6  
       57 mins ago
    额, 这 sign 不就很符合你的场景吗? sign 可以严格一次, 也可以时间窗口,也不需要使用缓存等资源。
    Liu6
        3
    Liu6  
       56 mins ago
    @Liu6 #2 现在是 AI 时代, 直接问 AI 吧。 除了 AI 我现在都快啥都不会了
    godall
        4
    godall  
       52 mins ago
    防重放攻击的标准做法就是 nonce+timestamp 啊,没什么好争议的。
    liKeYunKeji
        5
    liKeYunKeji  
       44 mins ago
    header 做一次性的校验码( token\sign\自定加密参数)
    dimwoodxi27
        6
    dimwoodxi27  
       36 mins ago
    用 wasm+图片隐写,sign 设置唯一条件,甩给前端动态 vmjs 来取图的 sign 值;随机数加时间戳有啥意义,又不支持无状态验证还浪费资源
    cowcomic
        7
    cowcomic  
       32 mins ago
    nonce+timestamp 这个就行啊,标准做法
    opengps
        8
    opengps  
       19 mins ago
    带上时间,有效期 1 分钟啊
    esee
        9
    esee  
       6 mins ago
    关键接口 消费一次即 作废,但是这样有时候网络不好系统自动重试 也会有问题,你要做好兼容 ;一般接口加签名和时间戳就行了啊。你对接一下大厂的接口,基本也是这样设计的
    xiangyuecn
        10
    xiangyuecn  
       3 mins ago
    如果你说的重放,指的是用户自己调试拿到请求参数,再发起请求,这种本身是防不住的 任何公司都一样 破解成本而已。只要够复杂 或者 没有价值 人家就懒得搞你。另外你也可以直接封号

    如果你指的传输线路上的网络数据包可以被窃取然后重放,并且能拿到响应明文,那你真该死啊,最低上个 https 啊🤡 自己发明一套 https 必要性不大,除非你 http 上能做的比 https 更好
    lululau
        11
    lululau  
       Just Now
    防重放你登录接口防个鸡毛的重放啊。。。最讨厌这种又是防这个又是防那个,又是加密又是解密,不懂装懂的“需求”了,https 了解一下呢?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3444 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 04:33 · PVG 12:33 · LAX 21:33 · JFK 00:33
    ♥ Do have faith in what you're doing.