Gestisco un sito piuttosto grande con migliaia di visite al giorno e una base utenti piuttosto ampia. Da quando ho iniziato la migrazione a MVC 3, ho inserito AntiForgeryToken in un certo numero di moduli, che modificano i dati protetti ecc.
Alcune altre forme, come il login e la registrazione, usano anche AntiForgeryToken ora, ma mi sto chiedendo in quali condizioni non ci sia bisogno, in primo luogo, per un paio di motivi ...
Il modulo di accesso richiede che il poster conosca le credenziali corrette. Non riesco davvero a pensare a nessun attacco CSRF, specialmente se controllo che la richiesta provenga dallo stesso host (controllando l'intestazione Referer).
Il token AntiForgeryToken genera valori diversi ogni volta che viene caricata la pagina. Se sono aperte due schede con la pagina di accesso, quindi proviamo a pubblicarle, la prima verrà caricata correttamente. Il secondo fallirà con una AntiForgeryTokenException (prima carica entrambe le pagine, poi prova a postarle). Con pagine più sicure - questo è ovviamente un male necessario, con le pagine di accesso - sembra eccessivo, e solo per chiedere guai.
Ci sono probabilmente altre ragioni per cui si dovrebbe usare o non usare il token in quelle forme. Ho ragione nel ritenere che l'uso del token in ogni forma di post sia eccessivo e, in tal caso, che tipo di forme ne trarrebbero beneficio, e quali sarebbero sicuramente non benefici?
P.S. Questa domanda viene anche richiesta su StackOverflow, ma non sono del tutto convinto. Ho pensato di chiederlo qui, per più copertura sicurezza