consideri questo scenario carico:token CSRF di laravel e il bilanciamento
un'applicazione ha un percorso di accesso che è protetto da filtro CSRF di laravel:
Route::group(array('before' => 'csrf'), function() {
Route::post('/doLogin', array('as' => 'doLogin', 'uses' => '[email protected]'));
});
L'applicazione si siede dietro un bilanciatore di carico, dove ogni richiesta è distribuito a caso su server01
o server02
. Laravel è configurato per la permanenza delle sessioni in un database, condiviso da entrambi server01
e server02
. Il percorso standard da seguire è: un utente accede a /
, inserisce le proprie credenziali in un modulo di accesso e invia tali credenziali a /doLogin
, che controlla il token, elabora le credenziali e restituisce l'utente a /
in caso di errore o /home
in caso di esito positivo.
La mia domanda è questa: dal momento che non c'è alcuna garanzia che un utente che accede /
su server01
invierà al /doLogin
su server01
, lavorerà built-in CSRF gettoni di laravel? O dal momento che il token è memorizzato in Session
, funzionerà indipendentemente da quale server viene assegnato dall'LB?
Io uso redis per le sessioni su più server con bilanciamento del carico, ma csrf funziona perfettamente indipendentemente da quale server venga colpito .... e l'ho specificamente testato prendendo i server tra le richieste –