【问题标题】:Brute force proection practices password reset蛮力保护做法密码重置
【发布时间】:2017-09-28 00:34:07
【问题描述】:

我正在使用php+mysql密码重置系统,步骤如下:

  • 插入电子邮件表单
  • 生成唯一哈希
  • 读取哈希页面并授权重置
  • 选择新密码

哪些步骤最能防止暴力攻击? 我的逻辑告诉我,我应该保护电子邮件表单和读取唯一哈希的代码页。 在电子邮件表单上实现此功能的原因是为了防止某人重复使用该表单来获取他知道系统中的地址 - 我认为这是非常合乎逻辑的,但我的问题主要是针对代码阅读器页面。 我是否应该根据 IP、会话甚至在短时间内从任何地方的总尝试来限制该页面? 什么是最佳做法,有任何可用的文档吗?

【问题讨论】:

    标签: php mysql brute-force forgot-password


    【解决方案1】:

    免责声明:这可能不是最佳答案,但这是我实际实施的。

    考虑一下黑客可以对海滩做什么?

    1) 他会重复发送用户名和密码字符串。

    2)如果他的 ip 被阻止以进行更多输入(就像您的手机输入错误密码超过 5 次一样)。他会在他的阻挡时间后重新发动攻击。

    3)如果他的 IP 被阻止,他将虚拟更改他的 IP 并重新发起攻击。

    ================================================ ========

    我们(甚至像 google/steam 这样的系统)做什么?

    1) 他们保留双重身份验证选项。

    ->类似于银行的 OTP 系统。这将使黑客更难破解。因为他也必须在您的手机上要求您的 OTP,这是动态的。

    2) 阻止 IP 将达到目的: 我们可以change ip in 几秒钟后再次尝试访问网站。

    3) 阻止帐户。

    -> 如果用户多次输入错误的密码(比如 15 次),您可以直接阻止他的帐户,直到他自己验证(通过他的 otp 发送到他的手机/电子邮件)。

    奖励积分:

    更安全

    1) 设备检测:

    大部分用户使用特定设备登录办公电脑、移动设备、家庭桌面。如果您通过不熟悉的设备收到输入,请向用户发送有关它的通知。

    2) 检测来自地理位置的无效请求:

    一些黑客会欺骗 ip 和地理位置,但他们可能会在尝试失败后忘记更改它,您可以使用它来了解更多关于攻击的信息,甚至使用地理位置锁定。

    【讨论】:

    • 我的主要问题是:黑客会尝试暴力破解这样的验证页面吗? www.mywebsite/validationcode/kjhiaf87rf87tefte84f34f8gf77
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    • 1970-01-01
    • 2021-01-10
    相关资源
    最近更新 更多