【问题标题】:Protect from bots creating multiple free accounts and uploading files防止机器人创建多个免费帐户和上传文件
【发布时间】:2012-09-21 12:41:01
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 但是这样的服务已经很多了……

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


【解决方案1】:

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

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

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

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

【讨论】:

  • 非常感谢您的提示!但是,您对了解异常使用情况的 AI 代理意味着什么。你能给我一些参考吗?你知道他们在 Rails 中的哪些库吗?
【解决方案2】:

我建议:

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

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

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

【讨论】:

    【解决方案3】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-25
      • 1970-01-01
      • 2012-11-18
      • 1970-01-01
      • 1970-01-01
      • 2011-05-16
      • 2019-12-30
      • 2010-09-15
      相关资源
      最近更新 更多