Осуществляем кросс-доменные запросы

Осуществляем кросс-доменные запросы

Даже при небольшом опыте работы с AJAX уже должно было возникнуть закономерное возражение: «Это не будет работать из-за кроссдоменной безопасности» (для предотвращения XSS-атак). Давайте рассмотрим и этот вопрос.

Для обеспечения безопасности пользователей веб-браузеры и Flash-клиенты блокируют пользовательские вызовы к другим доменам. Например, если клиентский код хочет обратиться к серверу s1.loadbalancedwebsite.ru, он должен быть загружен только с того же домена, s1.loadbalancedwebsite.ru. Запросы от клиентов на другие домены будут заблокированы. Для того чтобы обеспечить работоспособность описанной выше схемы балансировки, из клиентского кода на www.loadbalancedwebsite.ru требуется совершать обращения к серверам с другими доменами (например, к s1.loadbalancedwebsite.ru).

Для Flash-клиентов можно просто создать файл crossdomain.xml, который будет разрешать запросы на *.loadbalancedwebsite.ru:

<cross-domain-policy>

<allow-access-from domain="*.myloadbalancedwebsite.com"/>

</cross-domain-policy>

Для клиентского кода на AJAX существуют жесткие ограничения на передачу данных между доменами, которые зависят от методов, используемых для серверных вызовов. Применение динамической загрузки скриптов для осуществления запросов позволяет обойти ограничения по безопасности, ибо разрешает кроссдоменные вызовы. Однако в этом случае нужно будет обеспечить каким-то образом безопасность на уровне заголовков, чтобы убедиться, что именно ваш клиент осуществляет такие запросы.

Но что, если на клиенте используется XMLHttpRequest? XHR попросту запрещает клиенту запрашивать отличный от исходного домена сервер. Однако существует небольшая лазейка: если клиент и сервер используют одинаковый домен верхнего уровня (для нашего примера это www.loadbalancedwebsite.ru и s1.loadbalancedsite.ru), то можно осуществлять AJAX-вызовы с использованием iframe и уже через него загружать документы с сервера. Браузеры позволяют скриптам обращаться к такому iframe как к «родному», — таким образом, становится возможным доставлять данные с помощью серверного вызова через iframe, если скрипты были загружены с того же домена верхнего уровня.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Запросы

Из книги автора

Запросы Отдельные запросы представляются с помощью структуры struct request, которая тоже определена в файле <linux/blkdev.h>. Каждый запрос может состоять из более чем одной структуры bio, потому что один запрос может содержать обращение к нескольким смежным дисковым блокам.


Кросс — браузерность

Из книги автора

Кросс — браузерность Как с обычного компьютера, так и с гаджета пользователь может выходить в Интернет с помощью разных браузеров. Добиться полной совместимости сайта с каждым из них – та еще задачка. Так что желательно заранее решить, какие программы — просмотрщики


Глава 15 Доменные протоколы Unix

Из книги автора

Глава 15 Доменные протоколы Unix 15.1. Введение Доменные протоколы Unix — это не набор протоколов, а способ связи клиентов и серверов на отдельном узле, использующий тот же API, который используется для клиентов и серверов на различных узлах, — сокеты или XTI. Доменные протоколы Unix


Доменные адреса

Из книги автора

Доменные адреса Доменные адреса компьютеров выглядят примерно так: www.ivan.petrov.ru.Таким образом, адрес компьютера является составным, и каждая его часть называется сегментом. Крайний правый сегмент (в данном случае ш) называется доменом первого уровня, следующий (справа


4.4.3. Доменные гнезда (sockets)

Из книги автора

4.4.3. Доменные гнезда (sockets) Гнезда - это соединения между процессами, которые позволяют им взаимодействовать, не подвергаясь влиянию других процессов. Вообще гнезда (и взаимодействие программ при помощи гнезд) играют очень важную роль во всех Unix-системах, включая и Linux: они


§ 68. Доменные имена по-русски

Из книги автора

§ 68. Доменные имена по-русски 8 апреля 2001Некоторое время назад у китайцев появилась возможность регистрировать доменные имена по-китайски. Недавно о похожей услуге объявила компания РБК. Она предлагает регистрировать домены по-русски в зоне. com[8].Пожалуй, идея


Запросы на изменение

Из книги автора

Запросы на изменение Запросы на изменение дают возможность корректировать данные, содержащиеся в таблицах.Существует четыре вида запросов на изменение:• запрос на создание таблицы – создает новую таблицу на основе данных, которые уже размещены в одной или нескольких


7. Крисс-кросс, или Эвристическое составление головоломки

Из книги автора

7. Крисс-кросс, или Эвристическое составление головоломки Многие считают кроссворды слишком трудной головоломкой, потому что отгадать слово им не под силу. Но вписывать буквы в клетки нравится. Для подобных людей существует более простая головоломка — крисс-кросс.Каждый


Урок 6 Решительно осуществляем простейшие операции с файлами

Из книги автора

Урок 6 Решительно осуществляем простейшие операции с файлами В этом уроке мы изучим некоторые простые операции с графическими файлами: научимся их создавать, открывать, сохранять, ну и закрывать, конечно. После этого уделим немного нашего внимания встроенному


Запросы

Из книги автора

Запросы Аналогично сценариям создания и изменения, с помощью Visual Studio .NET можно генерировать запросы. За исключением тривиальных запросов, конструктор запросов с графическим пользовательским интерфейсом позволяет более эффективно и безошибочно создавать самые сложные


Запросы UNION

Из книги автора

Запросы UNION Запросы объединения дают возможность выбрать строки соответствующих форматов из различных наборов данных в объединенный набор данных, который приложения могут использовать так, как если бы он был одной таблицей только для чтения. Подмножества, найденные в


2.5. Осуществляем поиск нужной информации

Из книги автора

2.5. Осуществляем поиск нужной информации Для выполнения заданий нам понадобится материал, представленный в разд. 1.4.2. Скопируйте с диска, прилагаемого к этой книге, на свой компьютер все папки кроме macos.Задание № 1На прилагаемом диске найти файлы, созданные с I августа по 17


Кросс-сертификация

Из книги автора

Кросс-сертификация Кросс-сертификация - это механизм связывания вместе удостоверяющих центров, ранее не имевших связей друг с другом, таким образом, что становятся возможными защищенные коммуникации между соответствующими сообществами субъектов. Фактически


Кросс-сертифицированные корпоративные PKI

Из книги автора

Кросс-сертифицированные корпоративные PKI Если две организации или сообщества пользователей постоянно взаимодействуют друг с другом и нуждаются в защищенных коммуникациях, то между их инфраструктурами открытых ключей могут быть установлены одноранговые связи. Рис.


Построение пути для кросс-сертифицированных PKI

Из книги автора

Построение пути для кросс-сертифицированных PKI Архитектура кросс-сертифицированных PKI имеет много общего с архитектурами сетевой PKI и расширенных списков доверия. Здесь также разные пользователи строят разные пути сертификации для одного и того же сертификата