Recientemente se actualizó Laravel 4 para solucionar un problema de seguridad: hubo una vulnerabilidad CSRF en su código .
Aquí está el código antiguo:
if (Session::token() != Input::get('_token'))
{
throw new Illuminate\Session\TokenMismatchException;
}
Y aquí está su corrección (note el !==
):
if (Session::token() !== Input::get('_token'))
{
throw new Illuminate\Session\TokenMismatchException;
}
Entiendo la diferencia entre ==
y ===
en PHP (básicamente este último es más estricto porque verifica el tipo), y entiendo qué es CSRF y cómo abordarlo, pero no entiendo completamente por qué este caso específico crea una vulnerabilidad, o cómo un atacante la explotaría.