V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
edis0n0
V2EX  ›  程序员

用户余额高,无支付密码功能的商城客户端扫码功能这么设计是否足够安全和高效?

  •  1
     
  •   edis0n0 · 2022-08-20 18:42:08 +08:00 · 794 次点击
    这是一个创建于 860 天前的主题,其中的信息可能已经有所发展或是发生改变。
    要求是在登录页面(现在只有密码登录功能)边上做个扫码登录功能(不需要用户点击就展示二维码),扫码记录需要永久保留。

    流程:
    浏览器:访问登录页面->浏览器本地随机生成一个 UUID (避免每次用户刷新页面都多一条记录,同时少一个请求),拼接到登录 URL 中生成二维码中->每秒轮询一次扫码记录是否存在->轮询时服务器发现扫码记录则创建 Session 完成登录,同时保存 IP 地址等必要客户端信息并更新失效时间为当前时间。
    客户端:扫描浏览器生成的二维码->数据库创建扫码记录,包含用户 ID ,有效期 10 秒。

    数据库字段:
    QuickLoginChallengeGuid
    UserId
    ExpiredAt
    CreatedAt
    UpdatedAt

    安全顾虑:是否存在灰产使用大量肉鸡扫描 UUID 的可能?还是 32 位 16 进制字符已经足够避免暴力尝试了?
    edis0n0
        1
    edis0n0  
    OP
       2022-08-20 18:57:16 +08:00
    主键是 QuickLoginRecordId 忘记写上了,因为 ChallengeGuid 有可能被二次使用。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2092 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 00:25 · PVG 08:25 · LAX 16:25 · JFK 19:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.