Laravel | Protección CSRF

La falsificación de requests entre sitios (CSRF) es un tipo de ataque que realiza el atacante para enviar requests a un sistema con la ayuda de un usuario autorizado en el que el sistema confía.

Laravel brinda protección contra los ataques CSRF al generar un token CSRF . Este token CSRF se genera automáticamente para cada usuario. Este token no es más que una string aleatoria administrada por la aplicación Laravel para verificar las requests de los usuarios.

Cómo usar: esta protección de token CSRF se puede aplicar a cualquier formulario HTML en la aplicación Laravel especificando un campo de formulario oculto del token CSRF. Las requests son validadas automáticamente por el middleware CSRF VerifyCsrfToken .

Hay tres maneras diferentes en las que puedes hacer esto.

  1. @csrf
  2. csrf_campo()
  3. csrf_token()

@csrf: esta es una directiva de plantilla de hoja para generar el campo de entrada oculto en el formulario HTML.

  • Sintaxis:
    <form method="POST">
      @csrf  // Generate hidden input field
      .....
      .....
    </form>
  • Ejemplo:

    <!DOCTYPE html>
    <html>
        <head>
            <title>Laravel | CSRF Protection</title>
        </head>
        <body>
            <section>
                <h1>CSRF Protected HTML Form</h1>
                <form method="POST">
                    @csrf
                      
                    <input type="text" name="username" 
                                                placeholder="Username">
                    <input type="password" name="password" 
                                                placeholder="Password">
                    <input type="submit" name="submit" value="Submit">
                </form>
            </section>
        </body>
    </html>

csrf_field(): esta función se puede utilizar para generar el campo de entrada oculto en el formulario HTML.

Nota: Esta función debe escribirse entre llaves dobles.

  • Sintaxis:
    <form method="POST"<
    
      // Generate hidden input field
      {{ csrf_field() }}  
      .....
      .....
    </form>
  • Ejemplo:

    <!DOCTYPE html>
    <html>
        <head>
            <title>Laravel | CSRF Protection</title>
        </head>
        <body>
            <section>
                <h1>CSRF Protected HTML Form</h1>
                <form method="POST">
                    {{ csrf_field() }}
                      
                    <input type="text" name="username" 
                                           placeholder="Username">
                    <input type="password" name="password"
                                           placeholder="Password">
                    <input type="submit" name="submit" 
                                                   value="Submit">
                </form>
            </section>
        </body>
    </html>

csrf_token(): esta función solo da una string aleatoria. Esta función no genera el campo de entrada oculto.

Nota: el campo de entrada HTML debe escribirse explícitamente. Esta función debe escribirse entre llaves dobles.

  • Sintaxis:
    <form method="POST">
      <input type="hidden" name="_token" value="{{ csrf_token() }}">
      .....
      .....
    </form>
  • Ejemplo:

    <!DOCTYPE html>
    <html>
        <head>
            <title>Laravel | CSRF Protection</title>
        </head>
        <body>
            <section>
                <h1>CSRF Protected HTML Form</h1>
                <form method="POST">
                    <input type="hidden" name="_token" value="{{ csrf_token() }}">
                      
                    <input type="text" name="username" 
                                     placeholder="Username">
                    <input type="password" name="password"
                                     placeholder="Password">
                    <input type="submit" name="submit" 
                                             value="Submit">
                </form>
            </section>
        </body>
    </html>

Salida: la salida será la misma para cualquiera de las tres formas anteriores de generar un token CSRF. El campo del token CSRF debe escribirse/generarse al comienzo de cada formulario HTML, utilizando cualquiera de las tres formas, en una aplicación Laravel.

Inspeccione la salida del elemento:

Referencia: https://laravel.com/docs/6.x/csrf

Publicación traducida automáticamente

Artículo escrito por aakashpawar1999 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *