2011-07-19 13 views
12

http://en.wikipedia.org/wiki/Same_origin_policy¿Cuál es el modelo de amenaza para la misma política de origen?

La misma política de origen impide que un script de un sitio se comunique con otro. Wiki dice que es un "concepto de seguridad importante", pero no tengo claro qué amenaza impide.

Entiendo que las cookies de un sitio no se deben compartir con otro, pero que pueden (y se) imponer por separado.

La norma CORS http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing proporciona un sistema legítimo para eludir la misma política de origen. Es de suponer que no permite la amenaza que la misma política de origen está diseñada para bloquear.

En cuanto a CORS estoy aún menos claro a quién se protege de qué. CORS es aplicado por el navegador por lo que no protege ninguno de los sitios del navegador. Y las restricciones están determinadas por el sitio con el que la secuencia de comandos quiere hablar, por lo que no parece proteger al usuario de ninguno de los sitios.

Entonces, ¿para qué sirve la misma política de origen?

Respuesta

1

Como ejemplo, evita que Farmville verifique el saldo en su cuenta bancaria. O, lo que es peor, meterse con el formulario que está a punto de enviar (después de ingresar el PIN/TAN) para que puedan obtener todo el dinero.

CORS es principalmente un estándar para sitios web que están seguros de que no necesitan este tipo de protección. Básicamente dice "está bien que un script de cualquier sitio web me hable, no se puede romper ninguna seguridad". Entonces realmente permite cosas que estarían prohibidas por el SOP, en lugares donde la protección no es necesaria y los sitios web de dominios cruzados son beneficiosos. Piensa en meshups.

+0

¿Cómo se hace eso sin acceso a las cookies? ¿o estoy equivocado sobre las cookies que están siendo protegidas? –

+1

Las cookies se pueden enviar con la solicitud CORS estableciendo la propiedad de solicitud 'withCredentials' en' true'. Debido a que el JavaScript tiene acceso a las cookies de todos modos, no hay ningún beneficio en establecer barreras adicionales allí. Una buena lectura sobre el tema está aquí: http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/ – Waldheinz

4

El artículo @EricLaw menciona, "Same Origin Policy Part 1: No Peeking" es bueno.

Aquí es un simple ejemplo de por qué necesitamos la 'política del mismo origen':

Es posible visualizar otras páginas web en su propia página web mediante el uso de un iframe (un "marco en línea" lugares otro documento HTML en un marco) Digamos que muestra www.yourbank.com. El usuario ingresa su información bancaria. Si puede leer el código HTML interno de esa página (que requiere el uso de un script), puede leer fácilmente la información de la cuenta bancaria y el boom. Violación de la seguridad.

Por lo tanto, necesitamos la misma política de origen para asegurarnos de que una página web no pueda usar una secuencia de comandos para leer la información de otra página web.

0

El propósito de la política del mismo origen es evitar la amenaza de una lectura de la información sitio malicioso M del sitio de confianza Ausando la autoridad (es decir, las cookies de autorización) de un usuario de A. Es una política de navegador, no una política de servidor o un estándar HTTP, y está destinada a mitigar el riesgo de otra política del navegador: enviar cookies desde el sitio A al contactar al sitio A.

Tenga en cuenta que no hay nada que impida que M acceda a A fuera de un navegador. Puede enviar tantas solicitudes como quiera. Pero no lo hará con la autorización de un usuario desconocido de A, que es lo que podría ocurrir en el navegador.

También tenga en cuenta que la política impide que la página M de lea desde A.No protege el servidor A de los efectos de la solicitud. En particular, el navegador permitirá el dominio cruzado POSTS -cookies y todo-de M a A. Esa amenaza se llama Cross-Site Request Forgery; no está mitigado por la misma política de origen, por lo que es fundamental que los servidores se protejan de ella.

Cuestiones relacionadas