¿Por qué no hay una marca de SameOrigin que pueda colocar en las cookies para evitar el CSRF?

3

Hoy, pasé por el proceso de asegurarme de que mi servidor esté protegido contra los ataques CSRF, y me preguntaba por qué no hay solo una marca de SameOrigin que pueda establecer en mis Cookies. De la misma forma en que puede establecer HTTPOnly o Secure en cookies, creo que debería haber un indicador SameOrigin que solo enviaría la cookie si el navegador estuviera actualmente en el mismo sitio web en el que estaba configurada.

¿No sería esta una solución elegante para resolver ataques CSRF? También puede implementarlo de una manera compatible con versiones anteriores, en la que las cookies que no tienen el conjunto de SameOrigin se tratan de la forma en que siempre se han comportado las cookies.

    
pregunta satnam 12.01.2017 - 20:57
fuente

2 respuestas

2

Es una buena idea, y como @ paj28 señalado en los comentarios, ya existe un RFC borrador de las cookies de SameSite .

Una desventaja que se menciona en el borrador:

  

Considere el escenario en el que un usuario lee su correo electrónico en el proveedor de correo web de MegaCorp Inc. " enlace ". Pueden esperar que al hacer clic en un enlace enviado por correo electrónico a " enlace " les muestre el proyecto secreto que están autorizados a ver, pero Si "projects.com" ha marcado sus cookies de sesión como "SameSite", entonces esta navegación entre sitios no los enviará junto con la solicitud. "projects.com" generará un error 404 para evitar la filtración de información secreta, y el usuario estará bastante confundido.

Básicamente, una cookie estricta de SameOrigin rompería los enlaces a los componentes del backend.

El borrador también propone un modo indulgente que enviaría cookies en las solicitudes GET a través de los orígenes, pero es un problema común que muchas aplicaciones no siguen en reposo, sino que tienen solicitudes GET que cambian el estado del servidor.

Otro problema es que las aplicaciones todavía necesitarán implementar su propia protección CSRF para todos aquellos usuarios que no usan cookies actualizadas, por lo que los costos adicionales de desarrollo de configurar correctamente las cookies de SameOrigin pueden no valer la pena para algunos desarrolladores.

    
respondido por el tim 11.02.2017 - 22:33
fuente
1

Las cookies son inherentemente del mismo origen, en el sentido en que las cookies son enviadas por el navegador solo al origen (y posibles subdominios) que configuran la cookie en primer lugar. Refiriéndose a la información en su comentario, las cookies solo se encuentran entre el navegador y un sitio. La razón por la que un ataque CSRF es exitoso a pesar de que la solicitud de origen proviene de un dominio diferente se debe a que la solicitud va A, no a dónde viene.

Sobre la compatibilidad con versiones anteriores, una cookie que no sea del mismo origen podría ser una que se pueda configurar o enviar a otros dominios. Eso sería peligroso ya que no querría que evil.com reciba cookies de google.com.

    
respondido por el katrix 12.01.2017 - 22:05
fuente

Lea otras preguntas en las etiquetas