登录Brute Force对策的存储选择
我目前正在强化我的web应用程序的安全层,并且对于登录蛮力保护的实施有一些疑问:
我应该使用什么存储来存储每个用户/ IP失败登录的计数器? 如果一个简单的APC / Memcache条目足够了,还是需要一个更稳定和持久的存储方法,也意味着在每次登录时都会写入额外的SQL查询或文件? 或者甚至将它们存储在会话条目中(我的会话由Memcache处理,所以它们完全相同)。
关于全系统计数器的相同问题(为了触发登录锁定或限制分布式强力企图...)? 我认为这里的持久性更重要,但它也意味着在每个登录中查询/写入。
对检测到的登录蛮力企图进行适当的返回响应是什么? 我应该返回一个404错误,503服务不可用? 甚至是通过DROPing甚至通过IPTables / Netfilter对攻击者IP进行深入攻击? 我正在谈论一个真正检测到的蛮力企图,而不是一个用户登录失败的情况,因为他无法回忆他的通行证。
我原本以为缓存存储(APC / Memcache)足以存储计数器,但我担心缓存可能会因为什么原因而失败,从而使这个防护层无效。
对于其他的考虑,我已经阅读了一些不错的文章,例如什么是最好的分布式蛮力对策和尝试暴力破解平均密码的尝试,但是感觉自由抛出任何建议,将不胜感激。
首先 ,您必须确定数据的正确范围, 然后再考虑速度和优化。
如您所说,缓存存储可能会失败。 这清楚地表明您的数据的范围比缓存的范围更广。 因此,你不应该把它们存储在那里。 数据库是一个很好的选择。
现在,如果你关心速度(你应该是),现在是优化过程的时候了。 你已经有一个缓存层,所以用它来缓存这个额外的读取查询。 另一方面,您不应该为额外的更新查询而烦恼,因为这是不影响整体用户体验的特殊情况。
至于你的第三个问题,对检测到的蛮力尝试的响应类型并不重要。 重要的是时间:比如20秒的延迟。 这应该足以使暴力在这一生中不可能发生。
链接地址: http://www.djcxy.com/p/3693.html上一篇: Storage choice for login Brute Force countermeasures
下一篇: What are best practices for securing the admin section of a website?
