Recentemente Laravel 4 è stato aggiornato per risolvere un problema di sicurezza: c'era una vulnerabilità CSRF nel loro codice .
Ecco il vecchio codice:
if (Session::token() != Input::get('_token'))
{
throw new Illuminate\Session\TokenMismatchException;
}
Ed ecco la loro correzione (nota il !==
):
if (Session::token() !== Input::get('_token'))
{
throw new Illuminate\Session\TokenMismatchException;
}
Comprendo la differenza tra ==
e ===
in PHP (in pratica il secondo è più rigido perché controlla il tipo), e capisco cos'è CSRF e come affrontarlo, ma non capisco del tutto perché questo caso specifico crea una vulnerabilità o il modo in cui un utente malintenzionato potrebbe sfruttarlo.