rahulalam31/laravel-abuse-ip

封锁全球所有垃圾邮件发送者的IP地址。

1.4 2024-08-21 07:15 UTC

This package is auto-updated.

Last update: 2024-09-27 00:59:27 UTC


README

Abuse Ip

Laravel Abuse-IP

##保护您的网站免受垃圾邮件的侵害。

Packagist Downloads Packagist Version License: MIT Update SPAM IP List

为Laravel添加安全功能,用于检查IP地址是否安全或标记为垃圾邮件,以保护您免受垃圾邮件和虚假数据的影响。默认使用来自borestad/blocklist-abuseipdb的AbuseIPDB封锁列表。

安装

  1. 运行Composer require命令安装此包。服务提供者将自动发现。

    composer require rahulalam31/laravel-abuse-ip
  2. 发布配置文件并根据需要调整配置

    php artisan vendor:publish --tag=laravel-abuse-ip
  3. 运行以下Artisan命令以获取最新的可丢弃域名列表

    php artisan abuseip:update

3.1. 将以下内容添加到您的.env文件中。添加ABUSEIP_STORAGE_PATH以更改您的存储位置,添加ABUSEIP_STORAGE_COMPRESS true/false以启用或禁用ip2long()

  1. (可选) 强烈建议每天更新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