寻找此问题的最佳解决方案(几乎所有社交网站都会遇到此问题)
我有一个针对我们社区的小型社交网站。功能之一是用户可以向系统中的用户发送电子邮件(就像facebook一样)
几天前,一位用户使用宏或其他自动化系统向所有用户发送了一封垃圾邮件。整个过程不到3分钟,每个人都收到了那封电子邮件。我删除了该用户并添加了验证码以防止任何其他用户以这种方式发送垃圾邮件。但我确信这不是最好的解决方案。
所以想一下
- 仅允许用户在 2 分钟内最多发送一封电子邮件
- 用户每天最多可以发送 100 条消息
- 如果他达到最大 100 则阻止该用户
同样适用于评论、在墙上发布或发送添加为好友请求以及其他情况。
查看此链接 http://nedbatchelder.com/text/stopbots.html并考虑使用蜜 jar ..
但是我解释的垃圾邮件是针对注册激活用户的,还有其他最好的方法来阻止他/她..吗?
最佳答案
我认为有三个考虑因素:
- 多久可以创建一次帐户?由谁创建?
- 哪些功能需要保护以及如何保护?
- 用户如何确定他/她是受信任的?何时以及如何撤销这种信任?
1。限制新帐户
您已经提到的第一点已通过验证码解决(至少暂时解决)。长期以来,Facebook 和谷歌一直需要其他形式的可验证身份(例如手机号码)才能创建新帐户。其他网站使用referral-based signup ,并且如果用户有辱骂行为,可以追溯到推荐人。许多网站对可以创建的新帐户数量进行了某种限制。
2。功能保护
除了允许注册用户访问之外,哪些功能标准需要额外的保护?
例如,任何暴露某人个人信息(姓名、联系信息等)的行为都应该以某种方式受到限制,无论是使用隐藏电子邮件(如 craigslist、Source Forge 和许多论坛系统),或在与其他人共享该信息之前要求用户批准(Facebook 好友和隐私设置)。
此外,您如何保护这些功能?节流?延迟访问更强大的功能,例如 Stack Overflow?某种machine-learning分析行为模式并识别滥用行为?
3。主动损害控制
最后,用户如何确定他们没有滥用行为,以及您采取哪些步骤来主动识别这些类型的用户?
例如,您可以为电子邮件设置阈值,但如果用户发送的电子邮件过多,您可以延迟它们或将它们放入审核队列中,而不是关闭电子邮件。如果用户发送许多相同的电子邮件或太多电子邮件,您可能会决定暂时暂停他们的帐户或禁用对某些功能的访问。
另一个重要的考虑因素是,当合法用户的帐户受到威胁时,您会做什么,以及您会采取哪些操作来识别、锁定并最终恢复这些帐户?
处理攻击
对这些事件的常见第一 react 是进行损害控制并立即清理困惑。不。备份日志和数据库,禁用用户而不是删除它,然后进行清理。几乎所有滥用行为都遵循某种类型的模式,为了识别、理解和防御这种模式,您需要能够检查留下的数据。
显然,您还需要通过禁用违规帐户或攻击方法(例如禁用电子邮件系统)来防止立即重复攻击,但要小心丢弃数据。
关于PHP 社交网站用户垃圾邮件 - 使用宏向所有用户发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7052445/