Per prevenire gli attacchi di falsificazione delle richieste cross-site, sto considerando il seguente schema:
Per ogni utente, memorizza una chiave casuale. Se l'utente invia informazioni "pericolose", include un token di sicurezza e una data di creazione nel caricamento. Se la data di creazione è precedente a T (sono attualmente in attesa di 5 minuti), la richiesta è considerata scaduta e non valida.
Il token di sicurezza sarà un MAC (Poly1305-AES?) oltre la data di creazione, firmata con la chiave casuale dell'utente. Se la richiesta è abbastanza giovane, verificare se il MAC è valido per il datetime per questo utente. Se lo è, considera la richiesta autentica.
Questo schema è sicuro contro CSRF e riproduce gli attacchi, a patto che tutte le comunicazioni siano su https?