在Rails中设置POST表单的时间限制

时间:2013-06-11 15:37:55

标签: ruby-on-rails

我有一个网站,您可以在其中注册简报。注册只需要用户点击一下即可在数据库中注册它的电子邮件。我认为这可能是一个问题,因为没有冷却时间/时间限制,或者说有什么,所以我想有可能制作一些脚本来通过电子邮件垃圾邮件我的数据库。

我一直在考虑实施Captcha或其他东西,但我宁愿在注册时采取某种冷却方式。有点像,你每15分钟只能注册2封电子邮件,或类似的东西。这里最好的解决方案是什么?

2 个答案:

答案 0 :(得分:1)

您使用的方法是单一选择加入。它不仅效率低,而且可能非法

由于效率低下,原因是您可能会收到大量无效的电子邮件,并且您的系统正忙于向这些无效地址发送电子邮件。原因可能来自垃圾邮件尝试和用户错误。

对于合法,在欧洲,您只能向选择加入服务的人发送电子邮件。证明他们选择加入的唯一有效方法是他们已确认电子邮件中的选择加入链接。 http://www.lsoft.com/resources/optinlaws.asp单独发送电子邮件不是正当理由,因为您可以从其他人那里购买电子邮件

因此,正确的策略是使用 double opt-in 。当用户填写电子邮件并提交时,他将收到一封电子邮件,询问他确认此操作。一旦确认,他将成为有效的订阅者并开始收到电子邮件。

此外,通过双重选择,您对垃圾选择的关注将是最小的,因为垃圾邮件发送者更难以确认电子邮件,而且他们也没有太多动力去做。

答案 1 :(得分:0)

如果您有注册表,可以查看过去15分钟内特定用户的注册数量

Signup.where("user_id = ? and created_at >= ?", user_id, 15.minutes.ago).count

如果上述计数大于或等于2,则不允许