如何保护Symfony应用程序免遭暴力破解和恶意流量

时间:2017-01-10 18:32:30

标签: symfony

我一直在四处寻找,但我找不到任何有用的东西。从暴力攻击中保护Symfony应用程序的最佳做法是什么?我查看了SecurityBundle,但找不到任何东西。

3 个答案:

答案 0 :(得分:2)

我为此做的事情是,我根据尝试登录的IP地址和/或用户名使用事件订阅者保留日志。然后,如果在一段时间后IP /用户尝试登录然后我将该IP地址/用户移动到禁止列表..然后,在IP /用户尝试登录的任何时候,我立即根据禁止列表拒绝它。

您还可以尝试尝试与事件订阅者中的所有好事之间的时间

让我知道它是否有意义。

答案 1 :(得分:0)

使用cloudflare进行DDOS攻击。但它可能很昂贵。

您可以使用https://github.com/codeconsortium/CCDNUserSecurityBundle

阻止字典攻击

答案 2 :(得分:0)

老实说,我需要时使用我的网络/缓存服务器。我最近使用varnish cache来做一个名为vsthrottle的插件。 (这可能是您可以在服务器级别使用的众多内容之一)在Web服务器级别而不是symfony上执行此操作的优势在于您甚至没有达到php级别并且编译所有供应商只是为了最终拒绝请求,你没有使用单独的数据存储(无论是mysql还是像memcached一样快速的东西)来记录每个请求并在下一个请求上进行比较...如果请求到达php层,那么它已经花费了你一些性能,并且即使你从symfony返回拒绝,这种类型的DDOS仍然会伤害你,因为它导致服务器编译php和部分symfony代码。

如果您坚持在symfony中执行此操作,请注册侦听所有请求的侦听器,解析IP地址或X_forwarded_for的请求标头(如果您在负载均衡器后面,在这种情况下只有负载均衡器ip将继续显示使用常规ip检查),然后找到一种合适的方式来跟踪最长一分钟的所有请求(你可以使用memcached进行快速存储,以智能方式增加每个ips的计数)以及如果一个ip命中你更多比过去1分钟100次,你会返回一个禁止的响应或太多的请求响应,而不是通常的...但我不推荐这个,因为通常构建的解决方案(如我使用的清漆)更好,在我的情况下,我可以限制特定路线而不是其他路线。