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!
php laravel middleware
Commentami!