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

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

  1. 给用户带来的不便
  2. SQL注入或我们没有考虑的任何其他安全漏洞可能会在此上下文中发生

有什么好方法可以解决这个问题? 我知道我们可以实现validation码系统,但从用户体验的角度来看这并不理想。 我们还可以阻止中国(或者攻击源自哪里)的地方的IP,但我们也可能希望为中国的用户提供服务。

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

有什么建议?

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

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

试试’honeypot-captcha’gem – 最简单的方法将蜜jarvalidation码添加到rails表单中。 效果很好。