sebastienheyd / hidden-captcha
无 reCaptcha 的 Laravel 隐藏验证码
7.4.2
2023-06-12 09:30 UTC
Requires
- php: >=5.6.4
- ext-json: *
- laravel/framework: ^5.0|^6.0|^7.0|^8.0|^9.0|^10.0
Requires (Dev)
- orchestra/testbench: ^3.0|^4.0|^5.0|^6.0|^7.0
- phpunit/phpunit: ^5.0|^6.0|^7.0|^8.0|^9.0
- squizlabs/php_codesniffer: ^3.0
README
无 reCaptcha 的 Laravel 隐藏垃圾邮件保护解决方案。基于多种策略,在不影响用户体验的情况下,阻止绝大多数垃圾邮件机器人。
它是如何工作的?
HiddenCaptcha 将使用三个检查规则来阻止垃圾邮件机器人
- 包含用户 IP、当前会话 ID、当前用户代理和随机字符串的加密令牌
- 随机命名的必填字段(将使用令牌中的随机字符串)
- 时间限制(默认为 10 分钟)
令牌通过带有 sha256 签名的 AJAX 调用来检索。
安装
composer require sebastienheyd/hidden-captcha
发布公共资产
php artisan vendor:publish --tag=laravel-assets
Laravel < 5.5 的额外步骤
- 在
config/app.php
文件的provider
数组末尾添加SebastienHeyd\HiddenCaptcha\HiddenCaptchaServiceProvider::class,
- 在
config/app.php
文件的aliases
数组末尾添加"HiddenCaptcha" => SebastienHeyd\HiddenCaptcha\Facades\HiddenCaptcha::class,
使用方法
在您的表单中,在 blade 视图中
@hiddencaptcha
要检查您的表单,请添加以下验证规则
'captcha' => 'hiddencaptcha'
选项
更改时间限制
默认情况下,提交表单的时间限制为 0 秒至 1200 秒(10 分钟)。超出此范围,hiddencaptcha 不会验证表单。
可以通过在验证规则中声明来更改这些限制,例如
$rules = ['captcha' => 'hiddencaptcha:5,2400'];
您还可以发布配置文件以编辑默认时间限制
php artisan vendor:publish --tag=captcha-config
包更新(Laravel < 8.6.9)
Hidden-captcha 包含一个必须发布的 JS。由于通常需要在包更新时覆盖资产,您可以使用 --force
标志。
php artisan vendor:publish --tag=laravel-assets --force
要自动更新每次包更新时的资产,您可以将此命令添加到项目根目录中 composer.json
文件的 post-update-cmd
中。
{ "scripts": { "post-update-cmd": [ "@php artisan vendor:publish --tag=laravel-assets --force --ansi" ] } }