我想实现一个有效的机制来限制我的Java Web应用程序中的登录尝试,以防止对用户帐户进行暴力攻击。如何在Java webapp中限制登录尝试?
Jeff explained the why, but not the how.
西蒙·威利森呈implementation in Python for Django: 这并不真正帮助我一起,因为我不能使用memcached的也不Django的。
移植从头开始他的想法似乎并不像一个伟大要么 - 我不想推倒重来。
我发现一个Java implementation,但它似乎相当naiive:取而代之的是LRU缓存,它只是清除15分钟后所有条目。
的EHCache可能是memcached的替代方案,但我没有任何与它的经验,真的不希望,如果有这个任务更好的替代品,以intoduce另一种技术。
所以,什么在Java中实现登录节流的好办法?
虽然任何登录可能会导致用户体验不佳。 – Loki 2009-01-19 14:03:27
任何失败的登录在unix世界中都是标准的,但是web应用程序部分意味着攻击者可以在多个线程中执行此操作,所以简单的超时将不会执行,您必须将登录尝试存储在某个地方并创建一些代码来访问并验证它。 – Loki 2009-01-19 14:11:08
只是延迟所有尝试并不能阻止某人平行运行50个请求。这就是为什么Simon Willison将IP地址和时间戳一起存储在缓存中。 – 2009-01-19 14:48:05