datamweb/codeigniter-multi-captcha

CodeIgniter 4.x 的多验证码包。支持 Arcaptcha(伊朗免费且专业的产品)、Bibot(伊朗免费产品)、Recaptcha(谷歌产品)和 hCaptcha。附带速率限制支持。

dev-main 2023-03-29 22:55 UTC

This package is auto-updated.

Last update: 2024-08-30 01:07:18 UTC


README

波斯语 | 英语

CI 多验证码 (CIMC)

此包可用于 Codigniter 框架 4 版本及以上。此包支持 4 个验证码服务,包括 Arcaptcha 服务(伊朗专业验证码服务,包括图像猜测、拼图等)、Bibot(伊朗拼图验证码服务)、Recaptcha(谷歌制作)和 hCaptcha。此包的用户可以指定要使用哪个验证码或指定随机选择验证码。支持速率限制。

Demo CIMC

安装视频教程

以下是如何设置、安装以及正确使用此包的教程。有关正确使用此包的信息,请观看上传的视频。 YouTube 上的教程视频

如何在 Codigniter 框架上安装

第一种方法:通过 Composer

最好通过 Composer 进行安装。假设 Composer 已全局安装,您可以使用以下命令

composer require datamweb/codeigniter-multi-captcha:dev-main

第二种方法:手动

首先,下载 包的最新版本。然后将下载的 zip 文件解压缩到 app/ThirdParty 路径。现在转到 app/Config 。将以下内容添加到 Autoload.php 文件并保存文件。

    public $psr4 = [
	//Add this line
        'Datamweb\CIMC' 	        => APPPATH . 'ThirdParty\CIMultiCaptcha',
    ];
    

在下一步中,转到 app/Config 路径,并在 Validation.php 文件中添加以下值。

    public $ruleSets = [
        // Add this line
        '\Datamweb\CIMC\Validation\RulesCIMC',
    ];
    public $templates = [
        // Add this line
        'CIMC_ERRORS_LIST'      => 'Datamweb\CIMC\Validation\Views\_list.php',
        // Add this line
        'CIMC_ERRORS_SINGLE'    => 'Datamweb\CIMC\Validation\Views\_single.php',
    ];
    

在下一步中,转到 app/Config 路径,并在 Filters.php 文件中添加以下值。注意:从版本 V1.0.2pre-alpha 开始支持此功能。使用此功能,您可以使用 RateLimit。活动速率限制参数可以通过文件 app/ThirdParty/CIMultiCaptcha/Config/MultiCaptchaCIConfig.php 进行编辑。速率限制通常用于防止恶意机器人对网站或应用程序产生负面影响。速率限制可以帮助缓解的机器人攻击包括:暴力破解攻击、DoS 和 DDoS 攻击、网络爬虫。 关于速率限制的更多信息

    public $aliases = [
        //add for mix rate limit and captcha
        'rate_limit_by_captcha' => \Datamweb\CIMC\Filters\RateLimitByCaptcha::class,
    ];
    public $filters = [
        //add for mix rate limit and captcha in all url
        'rate_limit_by_captcha' => ['before' => ['/*']]
    ];
    

演示速率限制:number_of_action : 5 ,captcha_name: hcaptcha

Demo Rate Limiting

在文件 MultiCaptchaCIConfig.php 中的默认活动速率参数如下,您可以选择将其设置为 false 或随时更改。

    public $rateLimit=[
        'rate_limit_on'                         =>   true,                              //(true | false)
        'number_of_action'                      =>   25,                                //number of tokens the bucket holds
        'refill_period'                         =>   HOUR,                              //amount of time it takes the bucket to refill (SECOND |MINUTE|HOUR|DAY|WEEK|MONTH|YEAR|DECADE)
        'captcha_name'                          =>   'recaptcha',                       //The name of the captcha used on the Rate Limit page. (arcaptcha|recaptcha|hcaptcha|bibot)
        'rate_limit_view'                       =>   'Datamweb\CIMC\Views\rate_limit',           //The view of used on the Rate Limit page.
    ];

包配置文件

在使用此包之前,您需要从每个 Captcha 服务器接收两个专用密钥。为了接收密钥,您必须在每个 Captcha 服务器上注册并接收密钥。要接收 Arcaptcha 服务密钥,请访问Arcaptcha 注册地址,要接收 Bibot 密钥,请访问Bibot 注册地址,要接收 recaptcha 密钥,请访问Recaptcha 注册地址,要接收 hcaptcha 密钥,请访问hCaptcha 注册地址。获取密钥后进行操作。然后前往 app/ThirdParty/CIMultiCaptcha/Config 并替换 MultiCaptchaCIConfig.php 文件中的相关 site_keysecret_key 密钥。如果您需要更改颜色、主题、大小等,请通过此文件进行。在 captcha 语言方面,该包默认为 CI 框架中设置的任何语言,并使用相同语言显示 captcha。如果您需要自定义 captcha 语言,请通过此文件设置 lang 值。重要的一点是,两个伊朗服务器(Arcaptcha 和 Bibot)仅支持两种语言:波斯语(fa)和英语(en),此限制与 captcha 服务器有关,而不是与包有关。

如何使用(CIMC)

总的来说,使用此包的方式有两种。第一种方法是程序员选择服务,例如,程序员打算仅使用 recaptcha 服务,因此他必须按照以下图表中的蓝色路径进行操作。接下来是程序员不指定服务的角色。系统随机选择一个服务,为此您必须遵循黑色路径。

改进

此包作为开源提供。如果您需要讨论,提出想法等,请通过 讨论。另外,如果有错误,请通过 问题 进行注册。如果您是程序员,请尽量通过 拉取请求 参与编码。我们需要大家共同努力来改进。