2011-06-05 18 views
5

(y si no, ¿realmente mejora la seguridad del lado del cliente?)Con respecto a la seguridad del lado del cliente, ¿CORS hace algo más que subvertir la política del mismo origen?

Estoy pensando en el caso en que un script del servidor X usa XHR para obtener y ejecutar código no confiable del servidor Y (que admite CORS).

(obviamente evaluar código no confiable es malo ™)

+1

Los propios scripts no están sujetos a restricciones entre dominios. Por ejemplo, un script del dominio X puede incluir un script del dominio Y, y el código se ejecutará. Esto se puede hacer con una etiqueta de script normal, sin CORS. – monsur

+0

soy consciente de esto, no creo que ayude a responder la pregunta – adam77

Respuesta

5

No consumo CORS para mejorar la seguridad en absoluto. Utilizo CORS para acceder a un servicio web conocido en un dominio diferente al que no podría acceder sin CORS. No tengo nada que ver con mejorar la seguridad en mi opinión, sino permitir que los datos de un dominio se confíen a otro.

+1

sí, esto es lo que asumí, pero ha sido mencionado como una especie de mejora de la seguridad, así que tuve una idea equivocada, gracias. Entonces, ¿la política del mismo origen es más o menos redundante gracias a CORS? – adam77

+4

CORS es para que usted y su servidor de datos puedan comunicarse. La misma política de Origen aún se aplica a cualquier servidor que no implemente CORS. Supongo que lo que quieres decir es que los malos pueden implementar CORS con un dominio de * que permitiría a cualquier dominio obtener sus datos ... – mplungjan

5

CORS no se trata de reforzar la seguridad de , se trata de debilitamiento (pero sólo bajo ciertas condiciones con el permiso del servidor).

Si desea acceder a algo desde otro servidor en una solicitud AJAX, sin CORS, no está permitido debido a la "seguridad" (misma política de origen), y eso es el final *. Con CORS, el otro servidor puede dar permiso para reducir esa barrera de seguridad.

* A excepción de cortes como JSONP, pero que requiere también la autorización del servidor

+0

¿respondes sí o no a mi pregunta original? – adam77

+0

@ adam77 La respuesta a su pregunta original es CORS no hace nada relacionado con la seguridad del lado del cliente, al menos en la medida en que entiendo esa frase. La misma política de origen previene ataques triviales de denegación de servicio basados ​​en el navegador contra servicios de terceros. CORS permite a un servidor externo notificar a un navegador que no necesita esa protección. – rjmunro

1

CORS subvierte la política del mismo origen, pero de manera selectiva. Por ejemplo, un dominio de un sitio web bancario no establecería un encabezado CORS (para mantener el mismo origen en pleno efecto), ya que ningún JavaScript descargado de otros dominios debería realizar solicitudes AJAX al banco (o tal vez solo permiten un sitio asociado en el que confían) Un CDN probablemente establecería Access-Control-Allow-Origin "*" ya que no le importa si JavaScript descargado de otro dominio realiza solicitudes AJAX al CDN.

+0

por lo que es un debilitamiento (selectivo) de la seguridad. – adam77

+2

Si la misma política de origen establece que nunca debe abrir la puerta de su apartamento, entonces CORS dice que podemos hacer una excepción para el tipo de pizza. – Ryan

Cuestiones relacionadas