这几天和同事在邮件组里讨论用户识别的方案,把其中碰撞出的火花纪录如下:

IP不是一个好办法,单独的canvas也有些问题,我们可以考虑结合,另外,我们再调研一下看有没有更好的方法能解决我们的问题,请大家群策群力。

Canvas指纹可以用来验证用户,我看网上有人测试的成功率在90%以上,但是canvas指纹指向的是机器而不是用户本人。

所以我认为要想把羊毛党识别出来光靠Canvas指纹是不够的,要想识别用户必须先了解用户。

类似的征信系统比如国内的腾讯支付宝都有,它们都有如下的特点:收集用户手机号或者机器码、恶意IP地址,把这个当作征信数据库,在后台作匹配。另外可能在IDS、和防火墙上作了定制。

我看了一下google analytics的网络跟踪方法,主要动作有两个,分别与后台保持两个通讯接口visit和track:

    1. (visit接口)是验证用户是否本人,将用户进行分类。
      在客户端会给用户分配两个令牌,一个访客令牌在4小时后过期,一个用户令牌2年后过期,令牌是客户端随机分配的,令牌是Canvas指纹将来要替代的部分。过期时间的是由cookies来控制的,然后建立用户事件模型。
    2. (track接口)量化用户行为,建立征信数据库。
      将用户的操作行为量化成预设的事件模型队列,在每次页面转场并且在下个场景ready前将存在cookies里的事件队列发到后台。

同时后台要安排机器学习用户行为。也就是很多公司打出的生物识别、大数据分析之类的噱头。简单的说就是将量化的用户行为比喻成照片,然后让机器看着照片来模仿用户的行为。

量化用户行为的模型是依靠:状态、动作、状态与动作之间的关系来表现用户行为。一个用户登录财富宝、浏览理财产品、付款、退出、这些都是行为。同时又都是一种状态,他们之间的关系就可以量化。比如:登录到浏览产品之间停留了多少秒,中间是否切出去发了个微信朋友圈,用户触屏多少次,用户付款时输入密码的快慢等。客户端将状态和动作之间的关系量化后发给后台,抽象用户行为样本。有大量行为样本类似的就可以将其分类。所以最终确认一个用户是否是羊毛党而不是普通用户应该是靠一组独特的行为而不是一个ID号。

推荐几个页面跟踪技术比较成熟的项目:

  1. 浏览器指纹       http://valve.github.io/fingerprintjs2 (原理
  2. 行为跟踪            http://www.aloodo.org
  3. 字体检测            http://borowserspy.dk

以上,感谢陈老师和王老师贡献的经验之谈。

个人感觉陈老师的分析非常深入,追求极致的精神值得学习。 所列举的做法有很高的参考价值,但实践中还需考虑时间纬度,毕竟冰冻三尺非一日之寒。一步一步来   ,如果20分的投入能带来80分的产出  ,个人觉得还是可以先拿来解决当下之急。把追求极致作为一个长期演进的过程。