srdante / antibotlinks
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" 的启发。
