Bloccare indirizzi IP in Laravel 10

Mattepuffo's logo
Bloccare indirizzi IP in Laravel 10

Bloccare indirizzi IP in Laravel 10

Quello che vogliamo ottenere è un blocco su una rotta se fai una richiesta da una lista di indirizzi IP in Laravel 10.

Usando un middleware la cosa è abbastanza semplice.

Cominciamo con il creare il middleware:

php artisan make:middleware BloccaIpMiddleware

Lo trovate in app/Http/Middleware:

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;

class BloccaIpMiddleware {
    public $ipBloccati = ['192.168.1.23', '194.1.1.120', '127.0.0.1'];

    public function handle(Request $request, Closure $next): Response {
        if (in_array($request->ip(), $this->ipBloccati)) {
            abort(403, "Il tup IP non può accedere alla risorsa!");
        }
        return $next($request);
    }
}

Adesso modificate app/Http/Middleware/Kernel.php:

protected $middlewareAliases = [
    .................
    'blocca_ip' => \App\Http\Middleware\BloccaIpMiddleware::class,
];

Infine create la rotta:

Route::middleware(['blocca_ip'])->get('/', function () {
    return 'Hello World';
});

Se avviate il server locale e provate ad accedere, verrete bloccati:

php artisan serve

Enjoy!


Condividi

Commentami!