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

2022-08-20 18:42:08 +08:00
 edis0n0
要求是在登录页面(现在只有密码登录功能)边上做个扫码登录功能(不需要用户点击就展示二维码),扫码记录需要永久保留。

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

数据库字段:
QuickLoginChallengeGuid
UserId
ExpiredAt
CreatedAt
UpdatedAt

安全顾虑:是否存在灰产使用大量肉鸡扫描 UUID 的可能?还是 32 位 16 进制字符已经足够避免暴力尝试了?
730 次点击
所在节点    程序员
1 条回复
edis0n0
2022-08-20 18:57:16 +08:00
主键是 QuickLoginRecordId 忘记写上了,因为 ChallengeGuid 有可能被二次使用。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/874222

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX