我最近不得不保护一个网站管理登录系统,并且想对我正在使用的方法获得一些第二意见,因为安全往往会从第二意见中受益。
实现细节:Linux、Debian、Mysql、Php
ip白名单系统
部分:数据库内:用户名,密码,电子邮件,IP地址,用户提供的IP白名单:用户名,客户端提供的密码:当前IP地址
除了需要正确的用户名和密码外,您连接的系统的 ip 必须被列入白名单以允许登录。因此系统的逻辑级联如下:
- 如果 ip 未列入白名单:您无法登录,您必须验证该 ip。
- 验证您当前的 ip:转到一个页面,输入用户名,您会收到“我们将验证该用户名 [someUsername](如果存在),您将直接收到该帐户的自动电子邮件。” 验证电子邮件将通过电子邮件发送到该帐户的存档电子邮件(如果该电子邮件存在且处于活动状态)。否则它只会显示消息而不做任何事情。
验证电子邮件:只需一个带有与验证数据库中的密钥匹配的私钥的链接,链接到站点,页面链接验证数据库中该记录的 ip。
如果 ip 白名单:一旦被列入白名单,正确的用户名/密码组合将正常登录,不正确的将被拒绝。
那就是系统。它似乎与银行用来验证设备的方法略有相似,但并不完全相同,因此可能需要重构。有什么建议吗?