Политика безопасности на том же сайте разработана таким образом, чтобы злоумышленник мог внедрить вредоносный скрипт в веб-страницу, требуется одно из следующих действий:
- Веб-страница ссылается на скрипт или ресурсы изображениякоторые находятся за пределами домена веб-страницы, и злоумышленник может получить контроль над одним из этих внешних ресурсов.
- Злоумышленник имеет доступ к главному веб-серверу веб-страницы
- Или злоумышленник имеетуправление машиной на маршруте между веб-сервером и клиентом браузера (для незащищенных http-соединений)
Если вы создаете свой веб-сайт, чтобы ссылаться только на ресурсы в своем собственном домене, а вы - нетсделайте что-нибудь глупое, например, примите javascript (или SQL), встроенный в URL-адрес, или используйте javascript eval () для ввода текста пользователем, вы в относительно хорошей форме для конфиденциальности данных на своей веб-странице.
Если вы ссылаетесь на ресурсы сценариев или изображений, которые находятся в другом домене, безопасность вашего веб-сайта также зависит от безопасности этого внешнего домена.
Лучший способ защитыПротив # 3 выше (человек в середине атаки) является защита всех запросов к вашему серверу (для страницы, скрипта и изображений) с использованием протокола https вместо http.Человек посередине не может создать действительный криптографический сертификат для целевого домена, поэтому браузер может по крайней мере предупредить пользователя о том, что с сайтом что-то подозрительно.
Классическим примером безопасности на том же сайте является упаковкацелевая веб-страница в фрейме на странице, размещенной на сервере злой злоумышленника.Если URL-адрес родительской страницы и URL-адрес содержимого iframe находятся в одном домене, им разрешается общаться друг с другом и просматривать внутренние данные, переменные, DOM и т. Д. Если домены различаются, политика безопасности одного доменазаявляет, что браузер не должен позволять iframe видеть какие-либо переменные или информацию DOM своего родителя, ни родитель должен видеть переменные или DOM внутреннего пространства iframe.Это сделано для предотвращения непреднамеренного или ненадлежащего обмена данными между двумя доменами.
Если бы отсутствовала политика безопасности одного домена, злоумышленнику было бы очень просто обернуть веб-сайт вашего банка вiframe, ведет вас с неправильным указанием (ссылки на ложное электронное письмо, отправленное вам), чтобы войти через завернутый сайт и случайно наблюдать за всей вашей банковской деятельностью.Оттуда они могут истощить ваши учетные записи за считанные секунды.
Обратите также внимание, что изначально XHR был добавлен в среду браузера как стороннее расширение, поэтому лучшим способом было следовать существующей безопасности браузера.модель для клиентских запросов.XHR следует тем же правилам, которые использует браузер для извлечения html-страниц, сценариев и изображений.Если бы XHR был спроектирован в спецификации HTML с самого начала, а не был добавлен позже, для XHR все могло бы быть иначе.См. HTML5 PostMessage spec в качестве примера.