关于淘宝二维码问题的一些想法

今天fb上发了一篇关于淘宝二维码钓鱼的文章,不过该文章估计也快被公关了,暂时甩个还能访问的链接淘宝二维码钓鱼问题原文

大致描述

总结下来大概的意思就是如何利用淘口令结合网页扫码登录来进行钓鱼。
流程为:使用后端服务自动提取登录二维码的链接->转换成淘口令->散布淘口令->用户复制淘口令后进入淘宝APP->淘宝APP内部转换淘口令后跳转登录授权->用户受骗点击登录->后端服务获取到用户的授权即可登录淘宝。

问题反思

一开始看的时候很容易让人以为出问题的是二维码扫描登录,其实并不完全是,因为这本身是一个钓鱼的场景,无论我们如何优化二维码扫描登录也无法避免被用来钓鱼。而让这个场景变得更容易被钓鱼的本身原因应该有下面那么几个:

  1. 淘口令生成时候对链接校验不足,本质上还是一个短链接生成服务,虽然有对域名进行校验但是使用URL跳转漏洞可以绕过,那么对于淘口令生成的方面需要加强业务场景的校验,非业务场景的链接应该不予生成。
  2. 淘口令在淘宝APP里打开时候没有做严格的场景限定,应该在APP内限制淘口令仅能用来唤起相应的商品或者店铺,而不是跳转到授权登录页。
  3. 扫码登录的链接应该只能通过淘宝APP扫码来实现,非该操作都不能通过APP内部逻辑来唤醒,本质上还是对于场景的校验不足。

我个人认为应该按照这么个逻辑来修复这个问题,本质上还是对于钓鱼的场景进行限制即可。没有必要修改二维码扫码登录的协议,最多就是看看还有没有什么加固的空间。
当然换句话说,除了淘口令可能被利用以外,如果没有在APP内对于链接唤醒协议的场景做限制,可能还有其他类似的功能也可以被用来做钓鱼。