php mysql暴力保护用ip地址

时间:2017-11-23 16:58:08

标签: php mysql login ip brute-force

我有问题。我为我的网络登录[php,mysql]编写了一个强力保护。失败的尝试将用ip地址保存在数据库中。

我的问题: 我在学校尝试登录,发现我学校的所有计算机都有相同的IP地址。这意味着如果一名学生被阻止,我的登录在整个学校都不起作用。

如何修复此错误?

非常感谢您的回答。

最好的问候弗雷迪C.

1 个答案:

答案 0 :(得分:0)

这不是一个错误。这是典型的共享互联网连接的本质。这提供了两大好处:

  1. 节省IPv4地址的有限可用性。
  2. 保护系统免受开放端口攻击。如果某个端口在直接连接到互联网的单个系统上打开,则它很容易受到该端口的攻击。如果系统与路由器使用单个公共IP地址进行共享Internet连接,则路由器将阻止大多数端口上的数据进入任何系统,如果有必要(例如,SSH进入一个系统),则只有一个系统是对每个端口而不是每个系统都是脆弱的。
  3. 正如您所发现的那样,问题在于外部系统无法轻易区分路由器另一侧的系统。如果一个系统感染了垃圾邮件/病毒机器人,这通常会导致问题 - 实时黑名单(RBL)将阻止整个本地网络的IP地址,而在大型组织中,可能很难找到违规系统以便修复问题。

    对于更基本的“阻止来自我的服务器的坏人”,你可以使用:

    • 列表项
    • 高门槛(例如,100次失败尝试而不是3次)
    • 将块基于特定窗口(例如,我有一个系统,我根据一天中5次失败的事务自动阻止IP地址并每天重置计数)
    • 基于用户名(或其他密钥凭据)+ IP地址的组合来构建块 - 这对于试图入侵单个帐户的人来说效果很好但如果他们尝试“随机帐户+可能的密码”则无济于事
    • 仅在检查地理位置后阻止IP地址 - 例如,如果您的用户通常都在美国并且您偶尔会从其他地方登录(常规用户旅行),那么您可以阻止所有非美国登录后尝试次数少于阻止美国登录的次数。