【发布时间】:2019-02-16 15:45:43
【问题描述】:
我已经实现了我自己的 SessionHandlerInterface,它可以读取/写入用户会话和持久会话到 Redis 服务器。用户会话 cookie 设置为在浏览器关闭时过期,因此需要清理关联的 Redis 会话。例如,我可以通过设置 30 分钟的到期时间来清理它,这将导致用户在 30 分钟内收到一个新会话,而不会由于持久会话的存在而中断。在用户登录时,我会自动发出一个持久性 cookie,让他们在几个月内保持登录状态。
如何防止用户以编程方式获取用户会话 cookie 和/或持久性 cookie、将其删除并无限期地继续请求和删除 cookie 的 D/DoS 攻击?本质上是在 Redis 中创建无限数量的孤立用户或持久会话,最终将被清理。即使我将会话 cookie 的生命周期缩短到 1 分钟以在一定程度上降低风险,它仍然会留下一个持久的 cookie 问题,即它们不会设置为几个月后过期。这很容易使我的会话管理器崩溃并阻止所有用户登录。
我知道防火墙已经为此内置了解决方案,但是我想知道如何在应用程序级别缓解这种攻击。
这个问题之前提过:Orphaned Session Management Records in Database. How to handle the issue? DB Stability Risk
【问题讨论】:
标签: php redis google-cloud-platform session-cookies ddos