3

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

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

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

一方面,我绝对不想在注册表中添加验证码,因为它会对转化率产生负面影响。另一方面,我不想支付数千美元,因为机器人上传了数百万张虚拟图像。

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

4

3 回答 3

1

我建议:

  1. 让用户使用他们的电子邮件注册
  2. 不允许单个电子邮件使用多个帐户
  3. 向他们发送电子邮件注册确认,并在短时间内(例如 3 天)后停用“未确认”帐户

AFAIK,Drupal 嵌入了这种开箱即用的控件,或者不费吹灰之力(并且没有编程)。

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

于 2012-09-22T08:48:38.893 回答
1

据我所知,不使用验证码可以做到:

  • 设置监控系统,对特定的滥用模式发出警告(同一个 IP 上传大量数据并重复创建新帐户)。
  • 限制遵循这些模式的用户;希望这将使他们意识到并使该过程变得毫无价值。如果失败,则禁用这些帐户并让其所有者通过邮件/与您交谈,以解释发生了什么。
  • 既然您说它是您大学的系统,请让用户提供入学证明(例如大学电子邮件地址)以防滥用。
  • 在您的使用条款中明确说明这种禁止的用法。

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

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

于 2012-09-22T00:36:21.883 回答
0

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

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

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

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

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

于 2012-09-21T13:35:48.217 回答