Banhammer para Laravel: una solución simple para bloquear usuarios y direcciones IP
Victor Arana Flores
04 Apr 2023
Si estás interesado en aprender más sobre cómo proteger tu sitio web con Banhammer for Laravel, te invito a considerar mi curso "Protege tu sitio web con Banhammer for Laravel". En este curso, aprenderás todo lo necesario para bloquear usuarios y direcciones IP no deseados de forma sencilla y efectiva, utilizando la herramienta Banhammer. ¡No pierdas la oportunidad de proteger tu sitio web hoy mismo!
Banhammer para Laravel ofrece una forma sencilla de prohibir cualquier modelo por ID e IP, y también permite bloquear solicitudes por direcciones IP. Una vez que tu aplicación prohíbe a los usuarios, puedes usar el middleware proporcionado para evitar que los usuarios prohibidos accedan a ciertas partes de tu aplicación.
Una vez que instalas este paquete, puedes prohibir rápidamente los modelos a través del trait Bannable del paquete:
namespace App\Models;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Mchev\Banhammer\Traits\Bannable;
class User extends Authenticatable
{
use Bannable;
}
Ahora puedes prohibir usuarios con:
$user->ban();
// Prohibición de IP
$user->ban([
'ip' => $user->ip,
]);
// Listar todas las prohibiciones
$model->bans();
// Verificar estado de la prohibición
$model->isBanned();
$model->isNotBanned();
// Desbloquear un modelo
$user->unban();
Este paquete también admite la prohibición de direcciones IP directamente:
use Mchev\Banhammer\IP;
IP::ban("8.8.8.8");
IP::ban(["8.8.8.8", "4.4.4.4"]);
Otra característica interesante que ofrece este paquete es que los modelos prohibidos pueden tener una fecha de vencimiento. Una vez que vence una prohibición, el modelo se desbloqueará automáticamente mediante el programador:
$user->banUntil('2 días');
Este paquete también proporciona métodos de utilidad para limpiar todas las prohibiciones en la aplicación, incluyendo desbloquear manualmente las prohibiciones vencidas si necesitas limpiar las prohibiciones vencidas de forma programática.
Puedes obtener más información sobre este paquete, obtener instrucciones completas de instalación y ver el código fuente en GitHub.