如何通过Javascript管理用户身份?

时间:2012-01-11 10:17:41

标签: javascript jquery saas

我运行SaaS,允许免费试用。基本上,如果您注册,您将立即获得价值几美元的免费服务。我一直在根据IP地址确定新用户,并且在最初的几个月里它运行良好。现在人们终于发现,改变他们的IP地址并骗取免费试用奖金非常容易。

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

如果我发现相同的浏览器哈希已经注册了前100次注册中的10次免费试用...我将不会为该帐户启用免费试用奖金。

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

我已经考虑过通过twilio实施电话验证......但这会花费我的钱,花费我的用户资金,最终导致更少的免费试用。

编辑:这里的目标是尽可能限制欺诈行为,而不是在最轻微的情况下阻碍真正的活动!

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

4 个答案:

答案 0 :(得分:4)

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

虽然如果你将它与cookie和用户的IP地址混合起来,这绝不是万无一失的,你应该得到适合大多数用户的东西。

<强>更新
如果想要限制欺诈活动,我会实施基于短信的代码,类似于Gmail的工作方式。您必须输入您的手机号码以获得免费路径。如果您批量购买SMS,您应该能够获得大约2便士,并且很容易实现,只需找到一个带有API的SMS供应商。

虽然你可以使用上面的技术,但它过于复杂,仍然不会是万无一失的,并且可以很容易地解决。

答案 1 :(得分:2)

这真是不可靠

问题

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

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

解决方案

您面临的问题可能只能通过注册来解决 - 您可以使用OAuth尽可能地简化此问题,并允许其他人使用其他人的现有帐户进行注册提供商(谷歌,Facebook,Twitter,Linkedin等)

答案 2 :(得分:0)

您正尝试在javascript中唯一标识某个人。这通常是在网络上无法做到的 - 部分是通过设计,保持匿名。您可以在此处执行的最佳操作是设置cookie,并在用户尝试更改其IP地址时检查cookie。 他们将始终能够清除他们的cookie,但这就是你能做的所有事情。

答案 3 :(得分:0)

您是否考虑过实施验证码? 对于愿意手动创建多个帐户的用户来说,这不会是一种威慑,但肯定会在几分钟内击败机器人创建数百个帐户。 我喜欢recaptcha: http://www.google.com/recaptcha,它是免费的,它为视障人士提供解决方案,并帮助数字化书籍。