2009-12-18 72 views
1

我一直工作在一个Web应用程序,可能是易滥用的用户,尤其是垃圾评论/账户。我知道的reCAPTCHA会照顾机器人至于假冒用户所关注的,但它不会做那些谁创建一个帐户,用户任何东西,莫名其妙地把自己的垃圾评论的自动驾驶仪(像我见过的在twitter上无数次) 。处理用户滥用轨

,我已经想出了解决的办法是使任何用户都可以检举其他使用者,然后有标记的用户列表(布尔属性)上来就只能由管理员访问的用户index动作。然后,已标记可以成为候选人,禁止用户(另一个布尔属性)或经久不衰。被禁止的用户仍然可以访问该网站,但会大大降低权限。由于某些原因,我不想完全删除用户。

然而,当我想到这一点,我意识到,要通过标记的用户列表来决定哪些应该被禁止或没有旗可能是潜在的非常耗时的管理。短雇人做不懈/用户禁止的,是有一个更加自动化和优雅的方式来进行此事?

回答

1

“网络2.0”之前,网站是由管理员主持。现在,目标是让社区适应自己。 StackOverflow本身是一个奇妙的案例研究。该reputation system使用户能够承担更多的“行政”任务,因为他们证明自己值得信赖。如果你允许用户标记对方,你就已经走上了这条道路。至于该系统的细节(谁可以标记,取消标记,并禁止),我会说你应该看看各种成功的网络社区(如StackOverflow的),看看他们是如何工作的,以及如何成功的他们。最后,可能需要一些试验和错误,因为所有的社区都有所不同。

如果您想编写一些代码,您可以创建一个脚本来查找垃圾邮件发送者的典型使用模式(例如,在多个页面上发布相同的评论),尽管我认为目标应该是发展一个这样做的社区为你。这可能更多的是关于计划而不是编程。

+0

我真的很喜欢这个想法,我不希望一些随机用户标记其他用户的威利愿意不愿意。我真的很喜欢StackOverflow的声誉系统。感谢您的建议! – 2009-12-18 23:27:28

6

我会创建一个名为abuses的表,其中包含报告的用户和提交报告的用户。而不是标记的布尔字段,我建议有一个计数器缓存列,如“abuse_count”。当此列达到预定义值时,您可以自动“禁止”用户。

+0

很棒的建议!我可能只是实现这一个。 – 2009-12-18 23:24:44

1

一些复杂的垃圾邮件发送者都乐于花时间打破您的验证码,如果他们觉得奖励是足够高。你也应该考虑在寻找一个邮件服务器,如Akismet在对其中有一个很大的Rails插件(https://github.com/joshfrench/rakismet)。

还有其他的选择,比如defensio(https://github.com/thewebfellas/defensio-ruby)以及我发现一次的宝石,这些宝石在检测常见的博客垃圾邮件方面效果很好,但是我无法在我的生活中再次发现它。