🔐 Checklist de Seguridad en Laravel
17 formas prácticas de proteger tu aplicación contra hackers
La seguridad en Laravel no es opcional. Aunque el framework ofrece excelentes mecanismos de protección por defecto, una mala configuración o prácticas inseguras pueden dejar tu aplicación vulnerable.
En este artículo encontrarás una checklist clara y accionable con 17 medidas esenciales de seguridad en Laravel, ideal para proyectos en producción, SaaS, APIs y sistemas multi-tenant.
Si desarrollas con Laravel 10, 11 o 12, este checklist es para ti.
✅ Checklist de Seguridad en Laravel
1. Mantén Laravel y dependencias actualizadas
Laravel y sus paquetes corrigen vulnerabilidades constantemente.
Usa:
composer update
y revisa avisos de seguridad con:
composer audit
2. Usa siempre HTTPS
Protege credenciales y datos sensibles habilitando SSL en producción y forzando HTTPS.
URL::forceScheme('https');
3. Protege el archivo .env
.envNunca expongas el
.env.✔️ Asegúrate de que no sea accesible públicamente
✔️ Nunca lo subas a GitHub
4. Usa claves seguras (APP_KEY
)
APP_KEYLaravel cifra cookies y sesiones usando
APP_KEY.Si se filtra, tu app queda comprometida.
php artisan key:generate
5. Valida absolutamente toda entrada de usuario
Usa Form Requests o validación explícita:
$request->validate([ 'email' => 'required|email', ]);
Nunca confíes en datos del cliente.
6. Protege contra SQL Injection
Laravel Eloquent y Query Builder ya lo hacen si no usas SQL crudo.
❌ Mal:
DB::select("SELECT * FROM users WHERE email = '$email'");
✅ Bien:
User::where('email', $email)->first();
7. Evita XSS (Cross-Site Scripting)
Blade escapa automáticamente variables:
{{ $name }}
⚠️ Evita:
{!! $html !!}
salvo que sanitices el contenido.
8. Usa protección CSRF
Laravel incluye middleware CSRF por defecto.
No lo desactives en formularios web.
@csrf
9. Maneja correctamente autenticación y sesiones
✔️ Usa
Auth, Breeze, Jetstream o Fortify✔️ Regenera sesiones tras login
✔️ Configura expiración de sesión adecuada
10. Usa Hashing para contraseñas
Nunca guardes contraseñas en texto plano.
Hash::make($password);
Laravel usa bcrypt o argon2 por defecto.
11. Limita intentos de login (Rate Limiting)
Protege contra ataques de fuerza bruta:
Route::middleware('throttle:5,1')->post('/login');
12. Controla permisos y roles
Nunca confíes solo en el frontend.
Usa Policies, Gates o paquetes como Spatie Permission.
13. No expongas errores en producción
En
.env:APP_DEBUG=false
Los errores deben ir a logs, no al navegador.
14. Protege archivos subidos
✔️ Valida tipo MIME
✔️ Limita tamaño
✔️ Usa nombres aleatorios
$request->file('file')->store('uploads');
15. Configura correctamente CORS
Especialmente importante para APIs.
Revisa
config/cors.php y evita usar * en producción.16. Usa headers de seguridad
Agrega headers como:
X-Frame-Options
X-Content-Type-Options
Content-Security-Policy
17. Monitorea y registra actividad sospechosa
✔️ Logs
✔️ Alertas
✔️ Auditorías de acceso
Herramientas como Laravel Telescope, Sentry o LogViewer ayudan mucho.
Conclusión
Laravel es un framework muy seguro, pero solo si lo usas correctamente.
Aplicar este checklist reduce drásticamente el riesgo de ataques comunes como:
SQL Injection
XSS
CSRF
Fuerza bruta
Exposición de datos sensibles
Hey,
Index your laravelconmanuel.dev website in Google Search Index and have it displayed in search results.
Add laravelconmanuel.dev now at https://searchregister.net