计算登录尝试次数

时间:2014-12-22 09:28:51

标签: php security symfony bundle symfony-2.5

我正在寻找一个关于如何计算用户登录尝试的捆绑或方式 - (我正在使用FosUserBundle) 我正在尝试使用CCDN SecurityBundle,但它已被弃用(需要Symfony 2.4)。

是否有其他稳定的捆绑或方法来处理我的问题?

2 个答案:

答案 0 :(得分:4)

KEK的建议完全没有使用Symfony。您可以override安全配置中的failure_handler并创建将被调用的服务,然后通过将其直接存储在会话或数据库中来获取用户并添加其失败尝试次数。

使用此方法,您还需要覆盖登录成功处理程序,以便在用户成功登录时,在您使用的会话或数据库中将其失败的登录尝试次数重置为0。

答案 1 :(得分:1)

快捷方便

将其存储在$_SESSION中,包含时间戳和尝试次数。每次登录失败后都会增加尝试次数,并在成功时将其清除。

更安全一点

login_attempts创建数据库表。它必须包含至少两列用于标识用户的列(例如ip_addressuser_agent或其他任何确定其唯一的列)和一列登录尝试次数(int)。

每次用户尝试登录时,请增加amount_login_attempts。成功登录后,将计数器重置为0.

图片的标题说明

  • 如果失败尝试次数超过X
  • ,则临时阻止用户
  • 请勿使用sleep()延迟登录失败,因为这会使用服务器资源