如何通过Javascript管理用户标识

How To Manage User Identity Via Javascript?

本文关键字:用户标识 管理 Javascript 何通过      更新时间:2023-09-26

我运行一个允许免费试用的SaaS。基本上,如果你注册,你会立即获得价值几美元的免费服务。我一直只根据IP地址来确定新用户,在最初的几个月里效果很好。现在人们终于意识到,更改他们的IP地址并骗取我的免费试用奖金是非常容易的。

我想做的基本上是创建一个所有可能的javascript浏览器变量的散列,并将其存储在MySQL数据库中。

如果我注意到同一个浏览器哈希在之前的100个注册中有10个注册了免费试用。。。我不会为该帐户启用免费试用奖金。

我从哪里开始?(我在哪里可以找到所有javascript浏览器变量设置的列表,如窗口大小、操作系统、浏览器和版本号、国家/地区、语言等?或者jquery已经提供了这样的设置吗?)

我已经考虑过通过twilio实现电话验证。。。但这会让我花钱,让我的用户花钱,最终导致免费试用减少。

编辑:这里的目标是尽可能多地限制欺诈活动,而不是在最轻微的时候暗示真实的活动

当然,这个解决方案并不完美,但加上我已经拥有的其他解决方案会有所帮助。我愿意接受一些损失,但希望尽可能地限制它。

您可能想做的是查看浏览器指纹http://panopticlick.eff.org/

尽管这无论如何都不是傻瓜式的,但如果你把它与cookie和用户IP地址混合在一起,你应该会得到对大多数用户都有效的东西。

更新
如果这个想法是为了限制欺诈活动,我会实现一个基于短信的代码,类似于Gmail的工作方式。你必须输入你的手机号码才能获得免费跟踪,如果你批量购买短信,你应该可以以每个2便士左右的价格获得它们,只需找到一个带有API的短信供应商就可以轻松实现。

尽管你可以使用上面的技术,但它过于复杂,仍然不会是愚蠢的,而且可以很容易地解决。

这确实是不可靠的。

问题

如果有任何变化(例如,浏览器更新了,没有提及,可以直接切换),您的哈希将不匹配,同一个人将能够再次开始试用。

存储会话/cookie数据时也会出现同样的问题-cookie可以被清除(cookie通常存储会话的标识符)。

解决方案

您面临的问题可能只能通过注册来解决-您可以通过使用OAuth并允许人们使用其他提供商(谷歌、脸书、推特、Linkedin等)的现有帐户注册来尽可能简化这一过程。

您正试图在javascript中唯一标识一个人。这在网络上通常是不可能做到的——部分原因是为了保持匿名。在这里,你能做的最好的事情就是设置一个cookie,并在用户尝试更改其IP地址时检查cookie。他们总是能够清除他们的cookie,但这就是你所能做的。

您是否考虑过实现captcha?这不会阻止用户手动创建多个帐户,但肯定会在几分钟内击败创建数百个帐户的机器人。我喜欢重述:http://www.google.com/recaptcha,它是免费的,它为视障人士提供了解决方案,并帮助书籍数字化。