pbiering / rcguard
Roundcube 插件,强制在登录时解决验证码
Requires
- php: >=5.4
- roundcube/plugin-installer: >=0.1.3
This package is not auto-updated.
Last update: 2024-09-24 23:18:14 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密钥才能正常工作。
这些可以从以下地方获得:
- Google的 reCAPTCHA: https://www.google.com/recaptcha
- hCaptcha: https://dashboard.hcaptcha.com/
- Friendly Captcha: https://friendlycaptcha.com/
- Cloudflare的 Turnstile: https://www.cloudflare.com/products/turnstile/
您可以在 config.inc.php
文件中自定义以下内容
-
API版本:
v3
、v2invisible
、v2
、v2hcaptcha
或v2friendlycaptcha
或v2cfturnstile
;通过$config['recaptcha_api_version']
- 还配置所选服务所需的
$config['recaptcha_api_url']
、$config['recaptcha_publickey']
、$config['recaptcha_privatekey']
- 还配置所选服务所需的
-
v2 小部件主题:
light
或dark
(在支持的情况下);通过$config['recaptcha_theme']
-
v2 小部件大小:
normal
或compact
(在支持的情况下)。通过$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
这些库分别有自己的许可证。请参阅库文件以获取详细信息。