¿La misma política de origen para la web solo es útil debido a las cookies?

3

Hay una misma política de origen en el navegador para garantizar que, por ejemplo, El sitio malo no leerá tus datos de Facebook. Pero parece que el único problema que intenta resolver es que las cookies se envían automáticamente con la solicitud que autentica al usuario (+ tal vez algunos otros esquemas de autenticación como el certificado básico o tal vez).

Entonces, mi pregunta es: ¿realmente necesitaríamos esta política si el navegador no enviara todos los detalles de autenticación http y cookies con esta solicitud automáticamente?

Quizás la mejor manera es permitir el origen cruzado de manera predeterminada, pero asegúrese de que esta información (cookie, autenticación http) no se transfiera. En cualquier caso, ahora podemos producir API basadas en token, por ejemplo. y así sucesivamente si se requiere una solicitud entre sitios. Y un llamador de terceros debería obtener un token de la misma manera para que no se requiera CORS.

    
pregunta Ilya Chernomordik 02.02.2016 - 15:36
fuente

1 respuesta

2

No, la misma política de origen también protege contra:

  • Manipulación de dominios cruzados en el DOM (por ejemplo, una página que manipula otra página de otro origen cargado en un IFrame).
  • La respuesta de las solicitudes de AJAX se lee cuando los orígenes no coinciden.
  • Las imágenes cargadas de otros orígenes se pueden leer en un lienzo HTML5.
  

Así que mi pregunta es: ¿realmente necesitaríamos esta política si el navegador   no enviaría todos los detalles de autenticación http y cookies con esta solicitud   automáticamente?

Sí, lo necesitamos por las razones anteriores.

podría funcionar así, pero no ahora debido a razones de compatibilidad con versiones anteriores. Se romperían demasiadas cosas al cambiar repentinamente un estándar en el que se basa la mayor parte de la web del mundo.

En cualquier caso, ¿qué pasaría en el caso de que toda la ventana sea redirigida? p.ej. Si hay una función sensible que podría ser explotada a través de CSRF usando el método GET, el atacante podría simplemente redirigir toda la página a https://example.com/delete_users para ejecutar el ataque.

¿Cómo sabría el navegador no enviar cookies en esa situación? Parece que lo único que lograría es hacer las reglas más complicadas y la complejidad es el enemigo de la seguridad.

    
respondido por el SilverlightFox 03.02.2016 - 13:04
fuente

Lea otras preguntas en las etiquetas