Как работает CDN или внешний файл JavaScript на веб-сайте?

Во-первых, я смущен, что не знаю этого. Я знаю, что все это работает, но просто не знаю почему. Есть кое-что, что я до сих пор не знаю о CDN и таких вещах, как Google Analytics или Adsense.

Если эти сценарии поступают из домена, отличного от домена вашего сайта, как все это связано с той же политикой происхождения (SOP) и межсайтовый скриптинг (XSS)? Из того, что я понимаю о XSS и SOP, эти сценарии просто не должны запускаться или взаимодействовать с DOM на вашем сайте. Почему им предоставляются особые привилегии? И как эти особые привилегии отличаются от других внешних скриптов, которые вызывают ошибки в браузерах из-за XSS и SOP?

Вкратце, я хочу знать, почему сценарии из другого домена могут запускаться, взаимодействовать с моим сайтом и манипулировать им?

Ответы

Ответ 1

Вы неправильно понимаете эти политики.

SOP не позволяет странице (например, в кадре) взаимодействовать со страницей из другого домена или читать ресурс (запрос AJAX) в другом домене.

Нет ничего плохого в script из другого домена, выполняемого на вашей странице, если вы явно загружаете его. (что работает JSONP) Однако вы не можете прочитать источник script, так как это ресурс из другого домена.

Ограничения безопасности браузера основаны на источнике страницы, выполняющей код, а не на сайте, из которого был получен конкретный <script>.


Обратите внимание, что включение Javascript из другого домена предоставляет script полный доступ к вашей странице; он может отправлять запросы AJAX (в ваш домен) и красть информацию, отправляя запросы, не связанные с AJAX, в другие домены.

Включите script из другого домена, если вы доверяете этому домену.