智能地将不同帐户识别为同一用户
Posted
技术标签:
【中文标题】智能地将不同帐户识别为同一用户【英文标题】:Intelligently identifying different accounts as the same user 【发布时间】:2015-10-03 13:26:16 【问题描述】:为了在此处提供上下文,示例场景是一个应用程序(iPhone、android),它向用户(使用 Paypal)付费以完成某些任务。它目前在假设每个用户都有行为并拥有一个帐户的假设下运行。
更新 - 阐明这些任务的工作方式。每个用户可以执行一次任务,但任务可以由多个用户执行。这就是为什么我需要确保用户真的只执行一次任务。
示例任务
您的测试产品将很快通过邮件送达。请使用一周,然后提供您的反馈。完成您的反馈后,我们将给您 2.50 美元。
当用户创建多个帐户,然后尝试在这些多个帐户上付款以快速赚取大量资金时,就会出现此问题。因此,您可以看到此应用需要某种方式来检测用户是否在利用它。
目前我们的识别工具如下:
Weak Identifiers - 可能会发生变化并且很容易被伪造的事物。
名字 姓氏 IP 地址 电子邮件强标识符 - 更难更改或伪造但仍有可能更改的内容。
IMEI(仅限 Android) Paypal 帐户(仅在首次付款后有效,用户可以在重要之前大量付款) 广告客户 ID 唯一设备 ID 推送通知令牌(用于应用通知)基于这些标识符,并且完全不了解用于将帐户与其关联的过程,我很好奇是否有人对进行此类匹配有建议。也知道许多这些东西可以由一个忠诚的人伪造。
对于电子邮件,有一些模糊匹配的方法,但速度很慢。我已经有办法完成其中的一些工作,但在我进一步深入这个兔子洞之前,我希望从其他人那里获得最佳实践和经验。
我知道没有 100% 万无一失的方法来检测重复项,但我要做的就是标记可能的重复项以供审查,并赋予管理员审查帐户以及合并或禁用它们的权力。
更新 - 贝宝 Paypal 是一个很好的来源,但它只适用于非常特定的情况。要检查经过验证的帐户并取回帐户 ID,您必须在用户提供的帐户上具有完全相同的名字和姓氏。这并非总是如此。 Jonathan 可能是 Jon,Christopher 可能是 Chris,等等。此外,多个电子邮件可以绑定到同一个帐户。因此,一对夫妇可以共享,强迫他们输入其他人的名字以提交付款是没有意义的。
至于支付回报,可以通过一次性支付多个账户来避免这种情况。因此,在付款完成之前没有什么可以检测到的。我不知道通过 Paypal 取消付款的好方法,所以如果有建议,我会全力以赴。
【问题讨论】:
我不确定我是否理解问题所在。如果一个用户在多个账户上赚钱,那么他们已经完成了 X 数量的 Y 值。据推测,如果他们使用单个帐户,他们只会获得 X * Y 的报酬。使用多个帐户有什么好处? @halfer 在这种情况下,我不想为多次执行相同任务的用户付费。实际上,他们可以这样做一次,但要为每个帐户支付费用。 编辑 - 此外,这个应用程序对用户只执行一次任务具有既得利益。我会用这些信息更新主帖。 啊,你想让多个用户执行相同的任务吗?如果没有,显而易见的解决方案是在有人完成任务后将其从可用列表中删除。 如果您只提供 Paypal 作为付款方式,那么这可能会起作用:我相信他们会进行自己的重复过滤,例如通过注册银行账户或支付卡。 @Emn1ty 也许将您的场景与ipoll.com 等其他网站进行对比,看看他们可能实现了哪些您没有想到的内容。 【参考方案1】:我想跟进这件事并提到,虽然我没有得到这个特定项目的解决方案,但我确实得到了答案。
银行账户/信用卡(在这种情况下转换为贝宝账户)可能是限制多账户的最佳选择。您不会涵盖 100% 的案例,但它比其他任何事情都好。第二好的是电话号码。除此之外,您与欺骗设备标识符或对您的网络协议进行逆向工程并完全绕过应用程序的人之间的竞争是无休止的。 - @Vatev
为了解决这个问题,现实情况是,无论您多么努力地尝试对设备进行指纹识别,都有办法绕过它。唯一可靠的方法是对手机进行较低级别的访问,这是 Google 和 Apple 不提供的访问级别,并且唯一的替代方法会使您的应用因滥用服务而被拒绝。
【讨论】:
以上是关于智能地将不同帐户识别为同一用户的主要内容,如果未能解决你的问题,请参考以下文章