miguilim / antibotlinks
一个易于安装的自托管图像验证码库,使用PHP + InterventionImage实现。
1.0.1
2023-08-11 02:04 UTC
Requires
- php: ^8.0
- intervention/image: ^2.7
README
AntiBotLinks是一个易于安装的自托管图像验证码库。通过预定义的字典,库生成需要按特定顺序选择的图像。
此验证码解决方案可能无法100%防止机器人,但与其他流行的验证码服务结合使用,将为您的平台提供额外的安全层。
内容
安装
您可以通过composer安装此包
composer require miguilim/antibotlinks
使用
要开始使用此包,您必须使用make()静态方法,并将一个标识符字符串作为第一个参数传递。此标识符参数将用于存储和获取生成的挑战和解决方案。
Use Miguilim\AntiBotLinks\AntiBotLinks; use Miguilim\AntiBotLinks\CacheAdapters\SimpleFileCacheAdapter; $antibotlinks = AntiBotLinks::make('1', new SimpleFileCacheAdapter(__DIR__ . '/cache')); var_dump($antibotlinks->generateLinks());
通常您应该使用用户ID、IP地址或生成的cookie。
缓存适配器
为了使用AntiBotLinks类,您需要选择一个缓存适配器,以便它可以存储生成的挑战。该包默认提供了以下适配器
\Miguilim\AntiBotLinks\CacheAdapters\LaravelCacheAdapter\Miguilim\AntiBotLinks\CacheAdapters\SimpleFileCacheAdapter
然而,您也可以创建并使用自己的适配器,该适配器扩展了抽象适配器类
use Miguilim\AntiBotLinks\CacheAdapters\AbstractCacheAdapter; class MyCustomCacheAdapter extends AbstractCacheAdapter { public function remember(string $key, int $expiresIn, callable $callback): mixed { // } public function get(string $key): mixed { // } public function forget(string $key): bool { // } }
生成链接
您可以使用generateLinks()方法生成/检索验证码链接。您可以将要生成的链接数作为第一个参数传递。如果未找到链接,此方法将获取缓存的生成链接值并生成。
$links = $antibotlinks->generateLinks(amount: 3);
验证答案
您可以使用validateAnswer()方法验证用户的答案。
$antibotlinks->validateAnswer($answer);
刷新链接
您可以刷新当前缓存值并强制重新生成新的验证码挑战。当用户回答错误时,强烈建议使用此方法。
$antibotlinks->flushLinks();
自定义选项
在生成AntiBotLinks图像时,您可以选择启用/禁用一些选项。
// Enable or Disable image noise (Default: true) $antibotlinks->noise(value: false); // Enable or Disable image background (Default: false) $antibotlinks->background(value: true); // Enable or Disable dark theme (Default: false) $antibotlinks->darkTheme(value: true);
您还可以自定义单词宇宙。您可以覆盖单词宇宙或合并您的数组与默认数组。
$wordUniverse = [...]; $antibotlinks->wordUniverse($wordUniverse); // Or... $antibotlinks->mergeWordUniverse($wordUniverse);
许可协议
AntiBotLinks是开源软件,许可协议为MIT许可协议。
此库受MakeJar创建的FBU Script中的"AntiBotLinks"启发。
