0

我开发了一个应用程序,允许用户上传一些照片并在 Facebook/Dropbox/Twitter 等上分享它们。最近它在应用程序商店上线。

但是,我现在遇到了一个问题:一个机器人正在创建帐户并在我的服务器上上传许多照片。我暂时禁用了该应用程序,但现在我正在寻找一种有效的方法来阻止该机器人执行此操作。

机器人的 ip 地址经常变化,因此不可能阻止 ip。他使用非常真实的姓名和电子邮件地址创建帐户,因此很难找出哪些用户是真实的,哪些是由机器人创建的。

我正在考虑使用验证码,但我不确定如果我实施此应用程序是否会被 Apple 拒绝。我最好寻找一种方法,这样我就可以阻止他做他的工作,这样我就不必再次将应用程序重新发送给 Apple。

谁能给我一些关于我可以做什么的建议?

谢谢!

4

1 回答 1

1

这就是我解决类似问题的方法:

我实现了一个令牌生成器,它为与服务器的每一次数据传输生成一个一次性令牌,所以即使是一个用于登录数据、发送文件等的令牌。这个令牌是由一个秘密算法生成的,可以在服务器端进行验证,因为您知道如何生成一个。

使用一个令牌后,将其放入一个临时列表中以供接下来 X 分钟/小时/天使用(取决于您的服务器可以处理多少数据传输)。当用户尝试使用使用过的令牌发送数据时(即令牌与“禁止”列表中的令牌匹配),您可以确定有人试图向您发送垃圾邮件 -> 将帐户标记为“垃圾邮件发送者”并决定您希望做什么做。

该算法每次都必须生成不同的令牌(最好的方法是单向哈希),但是您必须确保特定的“属性”,从而可以证明其真实性。

所以一个非常简单的例子:

您在客户端中的算法正在生成一个介于 1000000000000000000000 和 99999999999999999999999 之间的数字,然后将该数字乘以 12456564 并增加 20349。

服务器成为特定的命令和数据,以及生成的令牌。现在它检查是否(number - 20349)%12456564为 0。如果为 0,则可能是由您的“秘密”算法生成的。

这是一个非常基本的例子,但你明白了……</p>

于 2012-09-19T21:12:52.680 回答