我们有一个非常标准的Symfony2应用程序。有一个提供者,一个密码编码器等等。密码被散列,散列成本相当大。如何保护Symfony登录免受计时攻击?
换句话说 - 当有人试图登录时(不一定用正确的密码) - 当有真正的用户检查散列以及不存在时,这是显而易见的。在第二种情况下,它更快 - 没有用户 - 不需要散列等。
因此,如果在我们的应用中注册了特定电子邮件,那么很容易知道。
Symfony中是否有内置的机制来防止这种泄漏?或者任何确定的最佳做法?
UPD响应第一答案: 如何处理一般这是或多或少清楚,问题是我们如何能做到这一点,而不Symfony的安全框架内的痛苦。
是的,我们使用这个功能。但是,如果有人输入_not_existing_电子邮件 - 框架(我想)不会尝试比较密码,使页面加载明显的问题。所以很容易说出邮件是否存在于我们的数据库中。那就是问题所在。 – user1312695