2015-04-16 27 views
7

Se faccio una richiesta POST senza usare il modulo e voglio impedire l'attacco di CSRF, quello che posso fare è impostare il csrf-token nel meta tag e rimetterlo all'intestazione quando la richiesta viene attivata. È una buona pratica?È buona norma memorizzare il token csrf nel meta tag?

<meta name="csrf-token" content="xxx"> 

Mettere il token tramite l'intestazione, utilizzando jQuery per esempio:

$.ajaxSetup({ 
    headers: { 
     'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
    } 
}); 

risposta

4

Sì questa è una buona pratica. Se stai usando Ajax, penso che questa sia la soluzione più pulita.

Si potrebbe anche inserire il token all'interno del modulo (che è più conveniente se si invia l'intero modulo), ma se si utilizza unjax, è sufficiente andare da qualche parte che è possibile afferrarlo.

in un campo nascosto o in un meta tag sono entrambe le opzioni molto buone.