gpt4 book ai didi

php - 为什么不使用 session 而不是数据库来锁定帐户

转载 作者:行者123 更新时间:2023-11-29 00:04:33 24 4
gpt4 key购买 nike

我正在构建一个 Web 应用程序,并且正在研究将帐户锁定作为解决暴力攻击的一种方法。寻找实现这一点的最佳方法让我找到了以下链接

1. limited attempts for login and block a users account for a specific amout of time

2. PHP lockout user after 3 failed log ins for 10 minutes

3. Blocking access to the login page after three unsuccessful login attempts

4. How to block user after 3 fail of submiting wrong information

还有很多链接,但他们都说了同样的话:

1. Create Database
2. Store Login Attempt Details
3. Add 1 to number of attempts
4. Set timed session if No of attempts > 3/5

然而,这让我开始思考,为什么下面的方法不是更好或至少同样好?

1. Set a session "[No of login attempts]" on failed login
2. Add "1" to "[No of login attempts]" on each failed login
3. Proceed with account lockout if "Session[No of login attempts]" is greater than 3/5

我觉得这更好,因为它很简单。数据库方法增加了不必要的开销和管理表的任务。(人们可能想从过去或登录解析等中删除失败的登录详细信息)

但是我没看到有人推荐这个方法

我在这里错过了什么?

最佳答案

一些事情:

  1. session 超时。如果您的攻击者只是等待足够长的时间,他们的失败次数就会被忘记。
  2. session 可以绑定(bind)到 cookie。在这种情况下,如果攻击者清除了他们的 cookie,他们将获得一个新的 session ID 和一组新的计数器。如果攻击者弄清楚了您的 cookie 方案,他们甚至可以创建自己的 cookie 并获得任意数量的 session 。
  3. session 也可以通过 URL 上的参数进行跟踪。在这种情况下,使用基本 URL 重试将重置登录尝试。此外,与 cookie 一样,如果攻击者可以找出您的 session ID 方案,则可以生成大量 cookie。

关于php - 为什么不使用 session 而不是数据库来锁定帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28130037/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com