Desidero utilizzare il CSRFGuard Project per proteggere una webapp legacy Java contro gli attacchi CSRF. L'ultima versione delle dipendenze di Maven è 3.1.0, che è quello che uso.
Questo fa parte del codice JavaScript incluso in ogni pagina protetta:
var xhr = window.XMLHttpRequest ? new window.XMLHttpRequest : new window.ActiveXObject("Microsoft.XMLHTTP");
var csrfToken = {};
xhr.open("POST", "/JavaScriptServlet/", false);
xhr.setRequestHeader("FETCH-CSRF-TOKEN", "1");
xhr.send(null);
var token_pair = xhr.responseText;
token_pair = token_pair.split(":");
var token_name = token_pair[0];
var token_value = token_pair[1];
È un file JS separato generato da un servlet dedicato, con intestazioni no-cache.
Non capisco perché il nome e il valore del token non siano direttamente incorporati nel JavaScript generato, ma recuperati tramite una chiamata AJAX sincrona (!).
Ci sono delle vulnerabilità se lo cambio per includere direttamente il token?