Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

1.3 Обеспечение безопасности и конфиденциальности данных в сети




1. 3 Обеспечение безопасности и конфиденциальности данных в сети

С целью обеспечения безопасности и конфиденциальности данных при их обмене в сети были разработаны правила, названные " политикой одинакового источника" (same-origin policy). Две Web-страницы имеют одинаковый источник, если:

· имеют одинаковые схемы (протоколы);

· имеют одинаковые порты (если указаны);

· имеют одинаковые хосты (hosts).

Пусть, например, Web-страница имеет следующий URL: http: //www. company. com/dir/page. html. Тогда результаты проверки на одинаковый источник следующих страниц дадут такие результаты:

· http: //www. company. com/dir2/other. html – " +";

· http: //www. company. com/dir/inner/another. html – " +";

· https: //www. company. com/secure. html – " -" (другой протокол);

· http: //www. company. com: 81/dir/etc. html – " -" (другой порт);

· http: //news. company. com/dir/other. html – " -" (другой хост).

Знак " +" означает, что проверяемая страница имеет одинаковый источник с исходной страницей, а знак " -" – разный.
Политика same-origin предусматривает, что две Web-страницы могут обмениваться данными без ограничений только при условии, что они имеют одинаковый источник. Отметим, что браузер Internet Explorer имеет два исключения из этого правила:

· если оба домена находятся в " зоне доверия" (highly trusted zone), то к этим доменам правило одинакового происхождения не применяется;

· порты не включаются в компоненты происхождения.

Поскольку объект XMLHttpRequest() подчиняется политике одинакового источника, то при доступе к данным локального сервера просходит сравнение происхождения страницы, вызвавшей запрос, и сервера, отправляющего ответ браузеру. И хотя в примерах №1, №1a и №1b скрипты, формирующие запросы к серверу, и сам сервер распололагаются на одном и том же компьютере, считается, что они имеют разный источник, поскольку используют разные схемы. Поэтому браузер Internet Explorer, за счет исключения из общего правила, разрешил чтение данных из локального сервера, а браузеры, подчиняющиеся всем правилам политики одинакового источника, – нет.
Выходом из создавшегося положения является использование предложенного группой W3C механизма CORS (Cross-Origin Resource Sharing), т. е. совместное использование ресурсов при обмене, осуществляемом страницами разного источника (кросс-доменными страницами), который состоит из набора HTTP-заголовков и указывает Web-серверу путь, разрешающий доступ к требуемым ресурсам для определенных сайтов. Если сервер в своем ответе указывает HTTP-заголовок Access-Control-Allow-Origin со значениями " *", то это означает, что он разрешает доступ к данным сервера всем сайтам. Другое значение указывает имя сайта, для которого разрешен доступ. Отметим, что разрешение действует только для методов GET и POST, на методы PUT и DELETE оно не распространяется.
Таким образом, чтобы данные на сервере стали доступны объекту XMLHttpRequest(), необходимо, чтобы сервер в своем ответе наряду с данными передал HTTP-заголовок " Access-Control-Allow-Origin: *". Однако это можно сделать, только применив серверное приложение, например, следующий скрипт на языке Python

#! c: /. . . /python. exe
print(" Access-Control-Allow-Origin: *" )
print()
print(" Hello, client! " ),

который расположен по адресу " http: //zykov/PYTHON/data. py" и выполняет следующие действия:

· вызывает интерпретатор языка Python (первая строка);

· создает и передает клиенту ответ сервера (последующие три строки с использованием функции print()):

§ первая формирует HTTP-заголовок ответа;

§ вторая – пустую строку для отделения HTTP-заголовка от тела ответа;

§ третья – данные, передаваемые клиенту.

Если в примере №1b изменить URL-адрес запрашиваемого ресурса с http: //zykov/data. txt? r=' + Math. random() на http: //zykov/PYTHON/data. py? r=' + Math. random(), то при запуске созданного таким образом примера №1c

Оглавление

Пример 1c

<! DOCTYPE html>
< html>
< head>
< title> Чтение текста из локального сервера< /title>
< /head>
< body>
< div id=" myDiv" />
< script>
var myDiv=document. getElementById(" myDiv" );
var xhr=new XMLHttpRequest();
xhr. open(" get", " http: //zykov/PYTHON/data. py? r=" +Math. random());
xhr. onerror=function(e) {
myDiv. innerHTML+=" Error";
}
xhr. onload=function() {
myDiv. innerHTML+=" < span > " + this. response+
" < /span> ";
}
xhr. send();
< /script>
< /body>
< /html>

получим корректный результат:

Привет, клиент!

уже на всех популярных браузерах: Internet Explorer, Chrome, Firefox, Opera и Safari. Такие же результаты будут получены и при изменении метода GET на метод POST.

Оглавление

2 Разработка приложения с использованием технологии AJAX

В качестве примера разработки приложения, использующего в рамках технологии " клиент-сервер" средства AJAX, выбрана задача тестирования пользователя на стороне клиента. Взаимодействие между клиентом и сервером осуществляется следующим образом.
Тестирование начинается с того, что клиент запрашивает имя пользователя и передает его серверу. Сервер последовательно тест за тестом отправляет клиенту сформированные и хранящиеся на сервере тесты. Клиент визуализирует тесты на Web-странице, принимает по каждому тесту ответ пользователя и передает его серверу. После окончания тестирования сервер передает клиенту результаты тестирования. Все обмены данными между сервером и клиентом происходят в рамках технологии AJAX, т. е. без формирования новых Web-страниц.
Далее мы рассмотрим более подробно работу клиенткой части приложения и работу ее серверной части.

Оглавление

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...