Formularios y Validaciones: Construyendo Aplicaciones Seguras

Inicio   /   Formularios y Validaciones: Construyendo Aplicaciones Seguras

Blog Formularios y Validaciones: Construyendo Aplicaciones Seguras


Formularios y Validaciones: Construyendo Aplicaciones Seguras


Aprende a proteger tu aplicación contra ataques maliciosos y datos corruptos.


Cada vez que un usuario rellena un campo en tu sitio, existe un riesgo. Desde errores accidentales hasta intentos de inyección de código. Laravel ofrece un escudo robusto mediante la protección CSRF y un sistema de validación que te permite dormir tranquilo por las noches.

1. Protección CSRF: El Guardián de tus Formularios

El Cross-Site Request Forgery es un ataque que engaña al usuario para que ejecute acciones no deseadas en un sitio donde ya está autenticado. Laravel protege tus rutas POST, PUT y DELETE automáticamente.

Para que un formulario sea aceptado, debes incluir la directiva @csrf. Esta genera un campo oculto con un token único que Laravel verificará al recibir la petición.

<form action="/perfil" method="POST">
    @csrf {{-- ¡Obligatorio! --}}
    <input type="text" name="name">
    <button type="submit">Actualizar</button>
</form>

2. Manejo de Peticiones (The Request Object)

En lugar de usar las superglobales de PHP como $_POST, Laravel nos entrega un objeto Request inyectado en el controlador. Este objeto es una navaja suiza para inspeccionar los datos entrantes.

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ContactController extends Controller
{
    public function store(Request $request)
    {
        // Obtener un solo campo
        $name = $request->input('name');

        // Verificar si existe un archivo
        if ($request->hasFile('avatar')) {
            // ... lógica de guardado
        }

        // Obtener todos los datos como un array
        $allData = $request->all();
    }
}

3. Reglas de Validaciones Básicas

La validación se puede hacer directamente en el controlador usando el método validate(). Si la validación falla, Laravel redirige automáticamente al usuario hacia atrás con todos los errores y los datos previos.

public function store(Request $request)
{
    $validated = $request->validate([
        'title' => 'required|unique:posts|max:255',
        'body' => 'required|min:10',
        'email' => 'required|email',
        'age' => 'nullable|integer|min:18',
    ]);

    // Si llega aquí, los datos son válidos
    Post::create($validated);
}

4. Visualización de Errores en Blade

Cuando la validación falla, Laravel guarda los errores en una variable mágica $errors disponible en todas tus vistas. También podemos usar la directiva @error para resaltar campos específicos.

<label for="email">Correo Electrónico</label>
<input type="text" name="email" value="{{ old('email') }}" 
       class="@error('email') is-invalid @enderror">

@error('email')
    <div class="alert alert-danger">{{ $message }}</div>
@enderror

{{-- Función old(): Recupera lo que el usuario escribió para que no tenga que rellenar todo otra vez --}}

5. Form Requests: Limpiando el Controlador

Para formularios grandes, lo ideal es mover la lógica de validación a su propia clase. Esto mantiene tus controladores increíblemente limpios.

Comando: php artisan make:request StorePostRequest

// En el controlador, solo tipamos el nuevo objeto
public function store(StorePostRequest $request)
{
    // Los datos ya vienen validados automáticamente
    Post::create($request->validated());
}

Dato Clave: Laravel incluye más de 90 reglas de validación listas para usar, desde accepted para términos y condiciones, hasta dimensions para validar el tamaño de una imagen.

Con formularios protegidos y datos validados, tu aplicación ya tiene nivel profesional. ¿Qué te parece si en la próxima entrada exploramos el Middleware para decidir quién puede entrar y quién no a ciertas secciones de tu web?

Tags: Laravel, php, formularios, curso, aprende, validaciones,

Ultimas Noticias


Como atraer trafico de calidad a tu web

&nbsp;Centrarse en generar más tráfico


¿Qué es Laravel y por qué usarlo en 2025?

En un mundo donde la tecno


Qué deberías saber antes de empezar un curso de Laravel

Antes de iniciar un curso de Laravel,


Cómo integrar MercadoPago en Laravel

Cómo integrar MercadoPago en Laravel


Laravel Livewire vs Inertia: ¿cuál elegir?

Laravel


Expande tu pequeño negocio al vender en línea

Podrías pensar que la cuestión del eco