Rails状态和睡眠?

时间:2011-04-07 15:17:23

标签: ruby-on-rails ruby multithreading thread-safety sleep

我正在写一个Rails应用程序,我真的专注于安全性。随后,我在减少暴力攻击时采取的一种方法是在任何登录请求失败后sleep 2。这为机器人增加了大量时间,使其几乎不可能暴力破解。 (我也只允许每个IP请求如此多)。

然而,当我sleep 2时,所有其他请求是否也会暂停2秒?我知道rails还不是完全线程安全的(尽管配置文件中threadsafe!有一个注释掉的选项......

是否有一种更好的方法和/或只能为野蛮人的线程睡觉?

1 个答案:

答案 0 :(得分:0)

我只是建议限制每个IP地址的登录尝试次数,以限制暴力破坏的可能性,而不是睡2秒钟。

将限制设置为10左右似乎是一个相当不错的妥协

  1. 不会惹恼合法用户
  2. 停止蛮力攻击
  3. 如果这个解决方案对你来说太令人生畏了,那么有很多Rails Auth库都内置了这个功能(可配置),例如:

    Devise

    AuthLogic