PHP MySQL蛮力保护具有IP地址



我有问题。我已经为我的Web登录[php,mySQL]编程了蛮力保护。失败的算法将通过IP地址保存在数据库中。

我的问题:我已经尝试在学校登录,并检测到我学校的所有计算机都有相同的IP地址。这意味着,如果一个学生被阻止,我的登录时间在整个学校都无法工作。

如何修复此错误?

感谢您的回答。

最好的问候弗雷迪c。

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

  1. 保护IPv4地址的有限可用性。
  2. 保护系统免受开放端口攻击。如果在直接连接到Internet的单个系统上打开端口,则很容易受到对该端口的攻击。如果系统使用单个公共IP地址在与路由器的共享Internet连接上每个端口而不是每个系统都容易受到伤害。

您发现的问题是,外部系统无法轻易区分路由器另一侧的系统。如果一个系统感染了垃圾邮件/病毒机器人,这通常会引起问题 - 实时黑名单(RBL)会阻止整个本地网络的IP地址,并且在大型组织中,可能很难追踪有问题的系统以解决问题问题。

对于更多基本的"阻止我的服务器的坏人",您可以使用:

  • 列表项目
  • 高阈值(例如,100次失败的尝试而不是3)
  • 将块基于特定窗口的基础(例如,我有一个系统,我会在一天内根据5个失败的交易自动阻止IP地址,每天重置计数)
  • 将块基于用户名(或其他密钥凭据) IP地址的组合 - 对于试图入侵单个帐户的人来说,这将很好地工作,但是如果他们尝试"随机帐户 可能的密码",他们将无济于事。。
  • 仅在检查地理位置后才进行阻止IP地址 - 例如,如果您的用户通常在美国,并且您会看到其他地方偶尔会登录(常规用户旅行),则您可能会在之后阻止所有非USA登录比您阻止美国登录的尝试次数要短。

最新更新