Protección CSRF con cookie y AJAX

2

Me gustaría señalar que he leído la otra pregunta con un título vergonzosamente similar y no contiene una respuesta a mi pregunta.

No he usado CodeIgniter como programador, pero recientemente he realizado una prueba de penetración para un sitio web que lo estaba usando. El sitio era muy pesado en AJAX y, por lo que yo entendía, tenía protección CSRF en forma de una cookie ( no marcada httponly ) que se copia en un campo oculto de un formulario justo antes del se envía el formulario.

Esto significa automáticamente que si un atacante puede encontrar una vulnerabilidad XSS en el sitio web (como era el caso), también puede aprovecharla para lograr el CSRF.

Sin embargo, suponiendo que el sitio no tenga XSS, ¿es esta solución inherentemente segura?
Me siento bastante mal por una cookie importante que no es httponly y que se accede por diseño a través de JavaScript. ¿Soy solo yo o es esta mala práctica en verdad?

Supongo que no puedes asumir la invulnerabilidad de XSS como defensa, pero aún así, ¿hay algún otro ataque en esto (que no aproveche XSS)?

    
pregunta K.Steff 09.06.2013 - 02:12
fuente

2 respuestas

1

La diferencia entre una cookie httponly y una cookie que no es httponly es que esta última no se puede leer ni modificar usando JavaScript en el contexto del sitio web.

No tener vulnerabilidades XSS implica que no puede ejecutar JavaScript en el contexto del sitio web que está atacando. Por lo tanto, esta solución es segura.

    
respondido por el copy 09.06.2013 - 03:26
fuente
-1

La vulnerabilidad XSS puede permitir la publicación de formularios con o sin cookies CSRF, pero tenga en cuenta que la protección contra XSS no es no el propósito de la protección CSRF.

Usar cookies CSRF para protegerse de XSS es como usar un extintor de incendios para protegerse de los tornados. El extintor de incendios es útil, pero es útil para algo diferente.

    
respondido por el tylerl 09.06.2013 - 07:33
fuente

Lea otras preguntas en las etiquetas