标签: ruby-on-rails ruby multithreading thread-safety sleep
我正在写一个Rails应用程序,我真的专注于安全性。随后,我在减少暴力攻击时采取的一种方法是在任何登录请求失败后sleep 2。这为机器人增加了大量时间,使其几乎不可能暴力破解。 (我也只允许每个IP请求如此多)。
sleep 2
然而,当我sleep 2时,所有其他请求是否也会暂停2秒?我知道rails还不是完全线程安全的(尽管配置文件中threadsafe!有一个注释掉的选项......
threadsafe!
是否有一种更好的方法和/或只能为野蛮人的线程睡觉?
答案 0 :(得分:0)
我只是建议限制每个IP地址的登录尝试次数,以限制暴力破坏的可能性,而不是睡2秒钟。
将限制设置为10左右似乎是一个相当不错的妥协
如果这个解决方案对你来说太令人生畏了,那么有很多Rails Auth库都内置了这个功能(可配置),例如:
Devise
AuthLogic