首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何保护Symfony应用免受暴力破解和恶意流量的攻击

如何保护Symfony应用免受暴力破解和恶意流量的攻击
EN

Stack Overflow用户
提问于 2017-01-11 02:32:30
回答 3查看 560关注 0票数 4

我到处找了看,但找不到任何有用的东西。保护Symfony应用程序免受暴力破解攻击的最佳实践是什么?我查了一下SecurityBundle但什么都没找到。

EN

回答 3

Stack Overflow用户

发布于 2017-01-11 02:38:51

为此,我使用基于IP地址和/或尝试登录的用户名的事件订阅者来记录日志。然后,如果在x个时间量之后,IP /用户尝试登录失败,则我将该IP地址/用户移到禁止列表中。在此之后,任何时候IP/用户尝试登录,我都会根据该禁止列表立即予以拒绝。

您还可以使用两次尝试之间的时间间隔和事件订阅者内部的所有好东西

让我知道它是否有意义。

票数 2
EN

Stack Overflow用户

发布于 2017-01-11 06:37:08

使用cloudflare进行DDOS攻击。然而,它可能是昂贵的。

您可以使用https://github.com/codeconsortium/CCDNUserSecurityBundle防止字典攻击

票数 0
EN

Stack Overflow用户

发布于 2017-01-12 19:22:42

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

如果你坚持在symfony中这样做,注册一个监听所有请求的监听器,解析IP地址或X_forwarded_for的请求头(如果你在一个负载均衡器后面,在这种情况下,只有负载均衡器ip将通过常规的ip检查保持显示),然后找到一种合适的方法来跟踪直到一分钟前的所有请求(你可以使用memcached进行快速存储,并以一种智能的方式递增每个ip的计数),如果一个ip命中的次数超过每1分钟100次,你将返回一个禁用响应或太多的请求响应,而不是通常的响应……但我不建议这样做,因为通常构建的解决方案(如我使用的清漆)更好,在我的情况下,我可以为特定的路线油门,而不是其他例如。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41575906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档