我正在使用PHP MySQL密码重置系统基于效率步骤:
- 插入电子邮件表格
- 生成独特的哈希
- 阅读哈希页并授权重置
- 选择新密码
最好保护哪些步骤以违规攻击?我的逻辑告诉我,我应该保护读取唯一哈希的电子邮件表单和代码页面。在电子邮件表格上实施此功能的原因是,要保护某人免受他知道它在系统中的地址的反复使用表格 - 我认为这很逻辑,但我的问题主要用于代码阅读器页面。我应该根据IP,会话甚至在短时间内从任何地方进行总尝试限制该页面?哪些最佳实践,有关此可用的任何文档?
免责声明:这可能不是最好的答案,但这是我实际实施的。
考虑黑客可以对海滩做什么?
1(他将反复发送用户名和密码的字符串。
2(如果他的IP被阻止以获取更多输入(就像您的手机一样,如果您输入错误的密码超过5次(。他将在阻止时间后重新启动攻击。
3(如果他的IP得到阻止,他将实际上更改IP并重新启动攻击。
===================================================================
我们(甚至像Google/Steam这样的系统(做什么?
1(他们保留双重身份验证的选项。
->喜欢银行的OTP系统。这将使黑客更难入侵。因为他也必须在您的手机上使用OTP,这是动态的。
2(阻止IP将有目的: 我们可以在几秒钟内更改IP,然后尝试再次访问网站。
3(阻止帐户。
->如果用户输入错误的许多尝试(例如15(,您可以直接阻止他的帐户,直到他自己对其进行身份验证(通过发送到他的手机/电子邮件(。
奖励点:
FORMORE安全
1(设备检测:
大多数用户使用特定的设备登录Office Computer,Thier Mobile,Home Desktop。如果您获得了不熟悉设备的输入,请向用户发送有关它的通知。
2(从地理位置检测无效的请求:
一些黑客欺骗IP和地理位置,但他们可能会在尝试失败后忘记更改它,您可以使用它更多地了解攻击,甚至使用地理位置锁定。