¿Es seguro usar $ .support.cors = true? en jQuery?

Estaba intentando conectar un servicio web en un dominio diferente usando el método ajax de jQuery. Después de investigar un poco, parece que no permite que esto sea por diseño para evitar la creación de scripts entre sitios.

Me encontré con un trabajo que incluía esta línea:

$.support.cors = true; 

en la parte superior de mi código javascript Por lo que entiendo, esto permite la creación de scripts entre sitios en jQuery.

¿Tener esta línea de código hace que mi sitio sea más vulnerable al ataque? Siempre he escuchado hablar de XSS como un problema de seguridad, ¿hay usos legítimos para XSS?

XSS no es una función que se puede habilitar en jQuery. Sería muy inusual si el núcleo jQuery tuviera una vulnerabilidad XSS, pero es posible y se llama XSS basado en DOM .

“Intercambio de recursos de origen cruzado” o CORS no es lo mismo que XSS, PERO , pero si una aplicación web tiene una vulnerabilidad XSS, un atacante tendría acceso CORS a todos los recursos en ese dominio. En resumen, CORS le da control sobre cómo se rompe la misma política de origen de modo que no es necesario introducir una vulnerabilidad XSS completa.

La $.support.cors consulta $.support.cors basa en el encabezado de respuesta de HTTP Access-Control-Allow-Origin . Esto podría ser una vulnerabilidad. Por ejemplo, si una aplicación web tiene Access-Control-Allow-Origin: * en cada página, un atacante tendría el mismo nivel de acceso que XSS vulenrablity. Tenga cuidado con las páginas en las que introduce encabezados CORS y trate de evitar * tanto como sea posible.

Entonces, para responder a su pregunta: NO una aplicación web nunca necesita presentar una vulnerabilidad XSS porque hay forma de evitar el SOP, como CORS / jsonp / proponentes de dominio cruzado / origen de control de acceso .

Solo puede ayudar si tiene CORS habilitado en su navegador pero aún no es compatible con jQuery:

Para habilitar las solicitudes de dominio cruzado en entornos que aún no admiten cors pero permiten solicitudes de XHR entre dominios (gadget de Windows, etc.), configure $ .support.cors = true ;. CORS WD

El solo hecho de establecer esta propiedad en verdadero no puede causar vulnerabilidad de seguridad.

Cuando un hacker puede inyectar código de script para cambiar las solicitudes a otro dominio, también puede establecer este indicador de javascript en el script.

Así que, si esta bandera está configurada, no cambia mucho en este punto de la intrusión.