rahulalam31 / laravel-abuse-ip
封锁全球所有垃圾邮件发送者的IP地址。
Requires
- php: ^8.0
- ext-json: *
- guzzlehttp/guzzle: ^7.0|^7.9
- illuminate/cache: ^8.0|^9.0|^10.0|^11.0
- illuminate/config: ^8.0|^9.0|^10.0|^11.0
- illuminate/console: ^8.0|^9.0|^10.0|^11.0
- illuminate/contracts: ^8.0|^9.0|^10.0|^11.0
- illuminate/support: ^8.0|^9.0|^10.0|^11.0
- illuminate/validation: ^8.0|^9.0|^10.0|^11.0
Requires (Dev)
- larastan/larastan: ^2.9
- laravel/pint: ^1.16
- mockery/mockery: 1.7.x-dev
- orchestra/testbench: ^8.18
- phpunit/phpunit: ^10.5
README
Laravel Abuse-IP
##保护您的网站免受垃圾邮件的侵害。
为Laravel添加安全功能,用于检查IP地址是否安全或标记为垃圾邮件,以保护您免受垃圾邮件和虚假数据的影响。默认使用来自borestad/blocklist-abuseipdb的AbuseIPDB封锁列表。
安装
-
运行Composer require命令安装此包。服务提供者将自动发现。
composer require rahulalam31/laravel-abuse-ip
-
发布配置文件并根据需要调整配置
php artisan vendor:publish --tag=laravel-abuse-ip
-
运行以下Artisan命令以获取最新的可丢弃域名列表
php artisan abuseip:update
3.1. 将以下内容添加到您的.env
文件中。添加ABUSEIP_STORAGE_PATH
以更改您的存储位置,添加ABUSEIP_STORAGE_COMPRESS
true/false
以启用或禁用ip2long()
-
(可选) 强烈建议每天更新AbuseIp列表,因为垃圾邮件IP地址每天都在变化,但您可以根据需要定期安排。您可以选择现在运行此命令,或者如果您使用Laravel的调度器,可以注册
abuseip:update
命令在
routes/console.php
中use Illuminate\Support\Facades\Schedule; // Schedule::command('abuseip:update')->daily();
或者如果您使用Laravel 10或以下版本,请转到控制台内核
protected function schedule(Schedule $schedule) { $schedule->command('abuseip:update')->daily(); }
使用方法
在需要的地方使用middleware::AbuseIp::class
,例如在表单页面或POST URL中。您也可以将中间件添加到您的代码中,对于Laravel 10及以下版本,请添加到Http/Kernel.php
,对于Laravel 11,请添加到bootstrap/app/php
//Laravel 10 and below /* * app/Http/Kernel.php */ protected $middleware = [ \RahulAlam31\LaravelAbuseIp\Middleware\AbuseIp::class, ..... ]
//Laravel 11 /* * bootstrap/app.php */ ->withMiddleware(function (Middleware $middleware) { $middleware->append(\RahulAlam31\LaravelAbuseIp\Middleware\AbuseIp::class); })
如果您不想将其放在路由中间件中,可以创建一个aliasMiddleware()
并使用别名在您的路由文件中禁用垃圾邮件IP访问。
//Laravel 10 and below /* * app/Http/Kernel.php */ protected $routeMiddleware = [ ....., 'abuseip' => \RahulAlam31\LaravelAbuseIp\Middleware\AbuseIp::class, ] Route::get('/xyz', function () { // })->middleware('abuseip');
//Laravel 11 /* * bootstrap/app.php */ ->withMiddleware(function (Middleware $middleware) { // }) ->aliasMiddleware('abuse_ip', \RahulAlam31\LaravelAbuseIp\Middleware\AbuseIp::class)
// Or use in route file Route::middleware(AbuseIp::class)->get('/', function () { return view('welcome'); });
自定义获取
默认情况下,该包使用file_get_contents()
检索新列表。如果您有自己的黑名单IP列表,请将其添加到config/abuseip.php
中的source