通过rails上的表单防止链接垃圾邮件

时间:2011-03-04 03:45:20

标签: ruby-on-rails security

我们的rails应用程序允许未登录的用户创建消息对象的消息注册用户,将其存储在我们的数据库中,然后将内容通过电子邮件发送给注册用户。在我们的暂存应用程序中,我们已经开始从抓取我们网站的机器人收到大量垃圾邮件。我们担心两件事:

  1. 给用户带来的不便
  2. SQL注入或我们未考虑的任何其他安全漏洞可能会在此上下文中发生
  3. 有什么好方法可以解决这个问题?我知道我们可以实现验证码系统,但从用户体验的角度来看这并不理想。我们还可以阻止中国(或者攻击源自哪里)的地方的IP,但我们也可能希望为中国的用户提供服务。

    另外,我相信rails具有内置功能来清理查询字符串并防止SQL注入,但默认情况下是否启用?在这种情况下,我们应该关注其他事情,以防止导轨默认不处理吗?

    有什么建议吗?

2 个答案:

答案 0 :(得分:6)

您可能希望在表单中实施honeypot。它本质上是一个空白的隐藏字段,在您的表单中没有用户会填写(因为它是隐藏的),但垃圾邮件机器人可能会填写。尽管可访问性,请务必相应地标记字段。

在大多数情况下,Rails能够防止SQL注入,您可以在Rails guide on security中阅读更多相关信息。整个指南页面都是很好的阅读。

答案 1 :(得分:2)

尝试'honeypot-captcha'gem - 将简单的验证码添加到rails表单的最简单方法。效果很好。