在多次尝试失败后,我需要忽略来自 ip 地址的身份验证尝试,以防止凭证猜测。有多个关于 Spring Security 蛮力保护的博客文章。但是我发现所有这些都建议了内存中的解决方案,例如:https://www.baeldung.com/spring-security-block-brute-force-authentication-attempts我工作的应用程序是无状态的,但需要提供蛮力保护。什么是实现这一点的合理方法?
2 回答
守着星空守着你
TA贡献1799条经验 获得超8个赞
正如您所指出的,文章中描述的方法将登录尝试次数保留在内存中。我认为您可以(并且应该)在无状态应用程序中这样做。“无状态”通常是指不使用服务器上的 HTTP 会话来跟踪 HTTP 请求之间的任何用户状态。
如果不使用服务器上的一些内存,就无法跟踪 HTTP 请求。我不会担心这是否符合“无国籍”的定义。
我们正在使用一种非常相似的方法(受到同一篇文章的启发)来防止在完全无状态的 Spring REST 服务中进行暴力登录尝试,并且它对我们来说效果很好。
编辑:我可以想到另一种方法:您可以使用 fail2ban 来解析您的应用程序日志并(暂时)在“较低”级别禁止恶意 IP 地址。
慕斯709654
TA贡献1840条经验 获得超5个赞
尝试在应用服务器中实现防火墙功能是一个坏主意。使用您可用的日志记录工具记录您看到登录失败以及它们来自哪个地址的事实。
然后使用专用防火墙应用程序提供的工具来解析您记录的信息以发出警报和阻止地址。在 Linux 上,fail2ban 是一个出色的小实用程序,可以查看您的日志并创建 iptables 规则以将黑客拒之门外。iptables 是 Linux 内核防火墙的接口。
添加回答
举报
0/150
提交
取消