Non sono sicuro se sto descrivendo qualcosa che è già stato proposto. In caso contrario, mi piacerebbe coniare questo " Double Submit Cookies " come metodo per migliorare la tecnica Double Submit Cookies che tenta di impedire Attacchi CSRF .
Ecco il concetto :
-
Prima di generare una pagina web, il server imposta un cookie nell'intestazione in cui il valore include due valori:
-
token valore generato da un numero casuale strong e
-
firma valore che è la firma del token (o forse semplicemente un hash di esso che è stato salato).
-
-
Quando il client effettua richieste successive, legge il cookie e include la firma del token + nelle richieste POST o GET (insieme a cookie che si trova automaticamente nelle intestazioni della richiesta).
-
Quando il server riceve la richiesta, autentica con:
-
controlla se il token + firma inclusa nelle richieste POST o GET corrisponde al valore del cookie nell'intestazione della richiesta e
-
prendendo il valore (cookie / stringa di query) token e lo firma nuovamente e confronta se la firma risultante corrisponde al valore (cookie / stringa di query) signature . Se corrisponde, dimostra che il cookie non è stato scritto in modo cieco da un sottodominio o altro.
-
Per ragioni, supponiamo che le prevenzioni degli attacchi XSS siano state implementate correttamente e che solo SSL sia vero.
Questo metodo è già stato utilizzato in precedenza? Previene correttamente l'attacco in cui un sottodominio scrive i cookie sul dominio genitore ?
[EDIT: Originariamente avevo il token e la firma in due cookie separati, ma per semplificare come suggerito da @SteffenUllrich, ho modificato la domanda in modo da riflettere sia il token che la firma in un cookie.]