0

我最近不得不保护一个网站管理登录系统,并且想对我正在使用的方法获得一些第二意见,因为安全往往会从第二意见中受益。

实现细节:Linux、Debian、Mysql、Php

ip白名单系统

部分:数据库内:用户名,密码,电子邮件,IP地址,用户提供的IP白名单:用户名,客户端提供的密码:当前IP地址

除了需要正确的用户名和密码外,您连接的系统的 ip 必须被列入白名单以允许登录。因此系统的逻辑级联如下:

  • 如果 ip 未列入白名单:您无法登录,您必须验证该 ip。
  • 验证您当前的 ip:转到一个页面,输入用户名,您会收到“我们将验证该用户名 [someUsername](如果存在),您将直接收到该帐户的自动电子邮件。” 验证电子邮件将通过电子邮件发送到该帐户的存档电子邮件(如果该电子邮件存在且处于活动状态)。否则它只会显示消息而不做任何事情。
  • 验证电子邮件:只需一个带有与验证数据库中的密钥匹配的私钥的链接,链接到站点,页面链接验证数据库中该记录的 ip。

  • 如果 ip 白名单:一旦被列入白名单,正确的用户名/密码组合将正常登录,不正确的将被拒绝。

那就是系统。它似乎与银行用来验证设备的方法略有相似,但并不完全相同,因此可能需要重构。有什么建议吗?

4

1 回答 1

1

我唯一的建议是使用黄金问题与电子邮件。电子邮件很容易受到攻击。


如果您不熟悉 Golden Questions,您可以让用户导入 X 数量的问题和答案。他们第一次登录时,您会随机让他们回答其中的一部分,如果他们做得正确,您可以将其列入白名单。每次他们使用新 IP 登录时都会重复该过程。


一些额外的好处是更快的用户体验和更少的中断(他们不必在被允许访问之前等待电子邮件)。

于 2011-04-22T17:47:04.717 回答