防止通过窗体上的链接发送垃圾邮件

问题描述:

我们的Rails应用程序允许未登录的用户创建消息对象并将其存储在我们的数据库中,然后通过电子邮件将内容发送给注册用户。在我们的登台应用程序中,我们已经开始收到很多来自爬行我们网站的漫游器的垃圾邮件。我们担心两两件事:防止通过窗体上的链接发送垃圾邮件

  1. 的不便我们的用户
  2. SQL注入,或者我们没有考虑任何其他安全漏洞可能发生在这种情况下

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

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

有什么建议吗?

您可能希望在您的表单中实施honeypot。它基本上是一个空白的隐藏字段,用户不会填写任何内容(因为它是隐藏的),但是垃圾邮件机器人可能会填写。请确保为可访问性标记字段。

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

尝试'honeypot-captcha'gem - 将最简单的方法添加到导轨形式的验证码验证码。工作得很好。