pauloamgomes/cockpit-cms-userflood

此软件包已被弃用且不再维护。未建议替代软件包。

Cockpit CMS 的 UserFlood 插件,在配置的失败登录尝试次数后锁定用户,提供一个非常简单的功能。

v0.1 2019-06-02 18:12 UTC

This package is auto-updated.

Last update: 2023-05-29 01:31:15 UTC


README

此插件通过在配置的失败登录尝试次数后锁定用户来扩展 Cockpit CMS (Next) 的核心功能,提供了一个非常简单的功能。

安装

手册

下载 最新版本 并解压到 COCKPIT_PATH/addons/UserFlood 目录

Git

git clone https://github.com/pauloamgomes/CockpitCMS-UserFlood.git ./addons/UserFlood

Cockpit CLI

php ./cp install/addon --name UserFlood --url https://github.com/pauloamgomes/CockpitCMS-UserFlood.git

Composer

  1. 确保在项目的 composer.json 文件中定义了 cockpit 插件路径
{
    "name": "MY_PROJECT",
    "extra": {
        "installer-paths": {
            "cockpit/addons/{$name}": ["type:cockpit-module"]
        }
    }
}
  1. 在项目根目录运行
composer require pauloamgomes/cockpitcms-userflood

配置

失败尝试次数可以按以下方式配置

flood:
  errors:  4    # max. allowed retries before lockout
  lockout: 20   # minutes lockout
  block:   4    # deactivate user after 4 consecutive lockouts
  failban: true # auto-blacklist malicious users based on ip behavior

如果没有提供配置,则默认使用 4 次登录失败。在 16 次连续失败登录尝试后(总计 4 次锁定),将用户设置为不活动(锁定)。failban 选项自动将相关用户 IP 列为黑名单,该 IP 与允许的最大错误数相关。

使用

UserFlood 插件(尚未)提供任何用户界面,它在身份验证工作流期间在后台工作,使用 cockpit.authentication.failedcockpit.authentication.successcockpit.accounts.save 事件。

  • 当用户失败登录尝试时,将用户设置为不活动(锁定)。
  • 为了能够登录,需要通过管理界面再次将用户设置为活动状态。

可扩展性

UserFlood 插件提供了以下事件,这些事件可以被其他插件处理

  • flood.insert - 在每次失败尝试时
  • flood.block - 当达到最大失败尝试次数时用户被锁定
  • flood.reset - 当删除 flood 用户条目时

待办事项和改进

  • 通过 IP 地址阻止用户
  • 定义一个时间表,其中应该发生阻止(例如,如果过去一小时内有 10 次尝试)
  • 创建一个管理界面,列出所有 flood 事件

版权和许可

版权 2018 pauloamgomes,根据 MIT 许可证。