pbiering/rcguard

Roundcube 插件,强制在登录时解决验证码

安装: 69

依赖项: 0

建议者: 0

安全性: 0

星标: 6

关注者: 2

分支: 10

开放问题: 3

类型:roundcube-plugin

1.4.0 2023-07-30 06:02 UTC

README

简介

此插件记录失败的登录尝试,并在失败尝试次数过多时要求用户通过验证码验证过程。它提供针对自动化攻击的保护。

失败尝试按IP记录并存储在数据库表中。IP也会在特定的时间后释放。

自2024-01-01起,默认配置设置为始终通过以下方式激活验证码验证:

$config['failed_attempts'] = 0;

来源

存储库

注册

安装

使用Composer

将此插件 pbiering/rcguard 添加到您的 Roundcube composer.json 中的 require 部分,运行 composer update 并在主 Roundcube 配置文件中启用 rcguard。
或者直接运行

composer require pbiering/rcguard

手动

将此目录的内容放置在 plugins/rcguard 之下。

Fedora/EL 通过RPM

直到 Fedora 或 EPEL 提供:通过 Copr 提供: https://copr.fedorainfracloud.org/coprs/pbiering/InternetServerExtensions/packages/

yum install roundcubemail-plugin-rcguard

激活

在主 Roundcube 配置文件(例如 /etc/roundcubemail/config.inc.php)中通过扩展插件配置数组启用 rcguard

array_push($config['plugins'], 'rcguard');

配置

config.inc.php.dist 复制到 config.inc.php 并根据需要进行修改。

使用 SQL/ 下的文件创建 rcguard 所需的数据库模式。表应该创建在 Roundcube 使用的数据库中。 注意:如果您使用 Roundcube 的 db_prefix 配置选项,必须相应地重命名表 rcguard

SQLite 示例

cd /usr/share/roundcubemail/plugins/rcguard
cat SQL/sqlite.initial.sql | sqlite3 /var/lib/roundcubemail/db/sqlite.db

自定义验证码

重要:此插件需要验证码API密钥才能正常工作。
这些可以从以下地方获得:

您可以在 config.inc.php 文件中自定义以下内容

  • API版本: v3v2invisiblev2v2hcaptchav2friendlycaptchav2cfturnstile;通过 $config['recaptcha_api_version']

    • 还配置所选服务所需的 $config['recaptcha_api_url']$config['recaptcha_publickey']$config['recaptcha_privatekey']
  • v2 小部件主题: lightdark(在支持的情况下);通过 $config['recaptcha_theme']

  • v2 小部件大小: normalcompact(在支持的情况下)。通过 $config['recaptcha_size']

有关小部件的更多信息,请参阅以下文档

插件配置文件还有其他一些选项可以配置,请查看。

自2018年5月起,您可以为请求CAPTCHA小部件定义一个代理(匿名或认证)。

自2022年4月起,增加了对hCaptcha和Friendly Captcha的支持。

自2023年3月起,增加了对Cloudflare的turnstile的支持。

支持的数据库

  • MySQL
  • PostgreSQL
  • SQLite

联系

本插件的原始作者是 Denny Lin

Diana Soares 几年前从原始项目分支出来,以 1) 使用reCAPTCHA v2.0,2) 添加larry皮肤,3) 因为项目问题响应太慢。此外,原始项目自2015年以来未更新,而在此期间Roundcube的API已经发生了许多变化。

Peter Bieringer 在2022年从 Diana Soares 的分支中进行了分支,以添加额外的CAPTCHA服务。

由于前一个分支在2021年也变得过时了(dsoares#50),Peter Bieringer 现在将维护此项目。

请通过 "issues" 发送评论和建议。

许可证

本插件根据GPL-3.0+许可证分发。

此插件还包含以下PHP库:

  • reCAPTCHA
  • hCaptcha
  • FriendlyCaptcha
  • Cloudflare Turnstile

这些库分别有自己的许可证。请参阅库文件以获取详细信息。