Sin entrar en demasiados detalles, tengo un sitio que es 100% Ajax. Todas las solicitudes al sitio (tanto GET como POST) se realizan a través de Ajax. Ahora tengo que implementar la protección CSRF, y todas las soluciones que encontré se reducen a enviar un token CSRF en los encabezados, pero la mayoría de ellos obtienen este token desde HTML o una cookie que viene con la solicitud GET.
Ahora que mi sitio es 100% Ajax y no se vuelve a cargar. Me pregunto si podría, antes de cada solicitud POST, realizar una solicitud GET al servidor para obtener el token y luego enviarla en los encabezados junto con la solicitud POST, por ejemplo
Envíe la solicitud GET a aaa.com/get-csrf-token
para obtener el token y luego envíe ese token junto con la solicitud en los encabezados, si alguien de otro sitio realiza una solicitud GET a aaa.com/get-csrf-token
y el servidor devuelve un token, luego Como sé, todavía no pueden leer ese valor.
Como el token se genera para cada sesión, simplemente puedo verificar que el token enviado sea el mismo que tengo en el memchache que está asociado con esa sesión.
¿Podría alguien decirme si esto funcionaría?