【问题标题】:How to prevent spam in rails?如何防止 Rails 中的垃圾邮件?
【发布时间】:2013-07-19 20:24:39
【问题描述】:

有人知道如何阻止 Rails 中的垃圾邮件吗?我尝试了很多解决方案,但都失败了。

我试过了:

验证码:我目前不喜欢验证码,因为它会在用户注册时中断,但在将验证码放在注册页面上时,机器人仍然设法通过它。

Honeypot:我创建了一个隐藏字段,将最大字符值设置为 0,并将表单 -9999px 推离屏幕,出于某种原因,这并不能阻止垃圾邮件。

askimet:虽然这适用于 wordpress,但它需要按月付费,所以我对这样的东西不感兴趣。

有没有办法阻止 Rails 中的垃圾邮件机器人注册?

【问题讨论】:

  • 究竟是什么样的垃圾邮件?
  • @MichaelSzyndel 当你说垃圾邮件类型时不确定你指的是什么,但是在我的网站上注册的垃圾邮件机器人,我受到了攻击,我不确定在服务器控制杆上阻止它或网络应用级别。
  • 是他们注册、添加 cmets、发送电子邮件之类的吗?垃圾邮件有数百万种,我想可以使用不同的方法来对抗它。
  • 好的,现在我明白了,他们可以注册,这是我最大的问题。我怎样才能阻止他们注册?我有一个电子邮件确认设置​​,他们似乎也绕过了它。
  • 因为它们可能根本不是机器人。雇用来自印度的人坐下来输入验证码是很受欢迎的。顺便说一句,您使用什么类型的验证码 - reCaptcha?

标签: ruby-on-rails ruby-on-rails-3 spam-prevention


【解决方案1】:

对于honeypot 解决方案,您可以使用invisible_captcha。

它非常适合中小型网站,具有简单且可配置的方法。

或多或少:

在您的表单中:

<%= form_tag(create_topic_path) %>
  <%= invisible_captcha %>
  ...
<% end %>

在您的控制器中:

class TopicsController < ApplicationController
  invisible_captcha only: [:create, :update]
  ...
end

【讨论】:

【解决方案2】:

攻击性垃圾邮件机器人(大多数情况下)使用相同的顶级域名或选定的名称、字符串或数字。

您可以尝试Filters Spam 过滤掉您在应用中不喜欢的单词等。

如果您对垃圾邮件有很大的问题,请使用Rakismet (Ruby Akismet),每月只需 4.99。我认为这没什么好问的。

【讨论】:

    【解决方案3】:

    试试 projecthoneypot gem https://github.com/cmaxw/project-honeypot。它使用维护可疑 IP 列表的 Http:BL 服务。查看http://www.projecthoneypot.org/httpbl.php

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-08
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      相关资源
      最近更新 更多