防止机器人创建多个免费帐户和上传文件

时间:2012-09-21 12:41:01

标签: amazon-s3 amazon-web-services security registration dropbox

我正在为我的大学开发一个网站,用户可以在其中创建帐户并上传图片。图片是私密的,只有上传者才能看到。例如,就像一个云文件系统。

每个用户都有一个500MB的免费帐户。我使用Amazon S3存储图像,也就是说存储意味着成本。

如何避免机器人上传数百万MB?如何避免机器人创建数百万个新帐户并在不影响用户体验的情况下为每个帐户上传500MB?

一方面,我绝对不希望在注册表中加入CAPTCHA,因为它会对转换率产生负面影响。另一方面,我不想支付数千美元,因为机器人上传了数百万个虚拟图像。

有没有人知道Dropbox,Google Drive等是否受此影响(机器人上传的内容)?这似乎不是问题,因为我找不到任何关于它的东西。所有与垃圾邮件相关的问题,我只能在论坛中阅读有关垃这也很有道理。其他用户可以阅读论坛中的垃圾邮件。垃圾邮件或Google云端硬盘等服务中的垃圾邮件无人问津。尽管如此,我必须保护它以避免成本意外。

3 个答案:

答案 0 :(得分:1)

据我所见,如果不使用CAPTCHA,可以这样做:

  • 设置监控系统,警告特定的滥用模式(相同的IP上传大量数据并重复创建新帐户)。
  • 按照这些模式限制用户;这有望使他们意识到并使这个过程变得毫无价值。如果此操作失败,请禁用这些帐户并让其所有者向您发送邮件/与您通话以解释正在发生的情况。
  • 由于您说这是您所在大学的系统,因此如果有滥用行为,请让用户提供注册证明(例如大学电子邮件地址)。
  • 在您的使用条款中明确禁止使用。

当然,足够智能的机器人可以解决所有这些问题。

对于更高级的解决方案,您可以尝试一些学习正常和异常使用模式的机器学习或AI,然后应用该信息来判断可能的滥用者。

答案 1 :(得分:1)

我建议:

  1. 让用户使用他们的电子邮件注册
  2. 不允许多个帐户使用一封电子邮件
  3. 向他们发送电子邮件注册确认,并在短时间内(例如3天)停用“未经证实”的帐户
  4. AFAIK,Drupal开箱即用地嵌入这种控件或者不费力(并且没有编程)。

    这不会解决您的所有问题,但实际上它会降低机器人漏洞利用的风险。

答案 2 :(得分:0)

正如您所说,您需要注册,有两点可以解决此问题 - 确保没有机器人注册和/或限制上传数量。

我个人会使用这两点。对于用户注册,请设计一个登录表单,用户必须在该表单中输入其电子邮件地址,向其发送包含链接的邮件,并在单击此链接后激活其帐户。或者让用户在注册时解决一个简单的数学问题。

对于第二点,您可以存储每个用户和时间的上传字节数。然后,您可以为每次允许的上传使用量设置配额,例如,您每小时上传的内容不得超过10MB。如果用户超过此限制超过n次,您可以停用其帐户。

并且:设置和警报和监控系统。例如,监控未激活用户的数量,监控上传量等,并在超过某个阈值时设置警报。

上述方法可能并不完美,可能不会阻止所有机器人,但它们至少会让机器人更难上传不需要的数据。这些方法也非常简单,因此您可以从项目开始,看看这是否真的是一个问题。如果你有机器人上传数据,你至少会收到警报,然后可以发明一个更好的解决方案。