Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемСергей Шумихин
1 Практические аспекты сетевой безопасности Основы веб-технологий
2 Состав веб-технологий Протоколы HTTP/HTTPS SOAP/JSON/XML-RPC и пр. На стороне сервера технологии построения распределенных ИС На стороне клиента HTML4, HTML5 CSS DOM JavaScript, AJAX
3 Протокол HTTP Текстовый; версии: 0.9, 1.0 и 1.1 HTTP-запрос метод, URL ресурса, версия протокола заголовки (опционально) тело запроса HTTP-ответ версия, код и статус ответа заголовки тело ответа
4 POST /wp-includes/charts/flot-stats-data.php HTTP/1.1 User-Agent: Opera/9.80 (Macintosh; Intel Mac OS X ; U; en) Host: andrepetukhov.wordpress.com Referer: Cookie: wp-settings-time = Content-Type: application/x-www-form-urlencoded Content-Length: 139 height=260&page=estats&chart_type=stats-data&target=stat- chart&width=555&blog= &unit=1&noheader=1&site=false& num=15&syn HTTP-запрос
5 Методы в протоколе HTTP GET, HEAD POST OPTIONS, TRACE PUT, DELETE Safe methods idempotent methods
6 URL (1 из 2) server dns-имя (localhost, lvk.cs.msu.su, президент.рф) как будет выглядеть президент.рф в HTTP-запросе? IP-адрес ( , или bin или hex) опционально – порт (service.nalog.ru:8080) Превращается браузером в: GET /path/program?query Host: server
7 URL (2 из 2) секции program, query и fragment – optional пример: path – путь (логический) к файлу программы query – аргументы для программы fragment вообще не передается на сервер URL-кодирование разрешенные символы: [A-Za-z0-9] и., -, ~, _ пробел кодируется + все остальные символы кодируются %xx, где xx – код символа в кодировке UTF-8
8 Заголовки HTTP-запросов User-Agent User-Agent: Opera/9.80 (Macintosh; Intel Mac OS X ; U; en) Referer Referer: Cookie Cookie: JSESSIONID=316A5CE41D3F370466D2F8C4D Authorization Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== Content-Length Content-Length: 82 Content-Type Content-Type: application/x-www-form-urlencoded
9 Вопросы для самостоятельного исследования (часть 1) что придет в программу в качестве значения key1: val1, val2 или оба? Дан запрос: POST /path/program?key1=val1 Host: server Content-Length: 9 key1=val2 что придет в программу в качестве значения key1: val1, val2 или оба? Как можно использовать полученные факты?
10 HTTP-ответ HTTP/ OK Last-Modified: Mon, 11 Oct :20:16 GMT ETag: "c135d73798bc4bc5aad6d1aa4a8aa073 Accept-Ranges: bytes Content-Type: application/xml Content-Length: 78 Server: nginx/ Date: Sun, 03 Apr :59:11 GMT Connection: keep-alive
11 Коды ответов (1 из 2) 1xx – информационные 100 Continue В запросе должно быть Expect: 100-continue 2xx – успех 200 Ok 3xx – перенаправление 301 Moved Permanently 302 Found 303 See Other 304 Not Modified 307 Temporary Redirect
12 Коды ответов (2 из 2) 4xx - ошибка со стороны клиента 400 Bad Request 401 Unauthorized В ответе должен быть проставлен WWW-Authenticate 403 Forbidden 404 Not Found 405 Method Not Allowed 5xx – ошибка со стороны сервера 500 Internal Server Error 501 Not Implemented 502 Bad Gateway 503 Service Unavailable
13 Заголовки HTTP-ответов Server Server: nginx/ Content-Length (Content-Length: 78) Content-Type Content-Type: text/html; charset=UTF-8 Location Location: Set-Cookie Set-Cookie: UID=2b7681f; expires=Tue, 02-Apr :59:11 GMT; path=/; domain=.scorecardresearch.com WWW-Authenticate WWW-Authenticate: Basic
14 HTTP 1.0 и 1.1: основные отличия Persistent connections Chunked transfer encoding Caching (ETag) Host header Digest auth Cookies
15 Вопросы для самостоятельного исследования (часть 2) Передать в запросе два одноименных заголовка с разными значениями какой заголовок будет доступен программе: первый, второй или оба? проверить на Content-Length и Cookies Передать в заголовке cookies два одноименных ключа с разными значениями какое значение будет доступно программе: первое, второе или оба? Передать два заголовка cookies с разными путями - / и /path, но с одноименными ключами какое значение будет доступно программе: первое, второе или оба? Как можно использовать полученные факты?
16 Инструменты Burp Suite Firefox c расширениями: FoxyProxy FireBug TamperData Можно поставить еще прокси для просмотра HTTP-трафика – например, WebScarab Browser -> Burp Suite -> Logging Proxy -> Web App
17 Хостинг Workflow веб-сервера Как на одном узле развернуть несколько сайтов? Как передать программе входные данные и получить ответ? CGI REQUEST_METHOD, PATH_INFO, QUERY_STRING, REMOTE_ADDR Модули сервера Как решить задачу масштабирования и балансировки нагрузки? Хостинг и HTTPS
18 Прокси-серверы Прямые прокси и gateway открытые и анонимные прокси прозрачные прокси самостоятельное исследование: как обнаружить? Обратные (reverse) прокси Задачи кэширование, балансировка нагрузки централизованный контроль access control, DLP, AUP, проверка на malware и пр. биллинг и протоколирование шифрование/дешифрование, аутентификация
19 Схема работы модуля типичного веб-приложения
20 Технологии на стороне клиента HTML4, HTML5 CSS DOM JavaScript, AJAX Java-апплеты, ActiveX, Flash, Silverlight История и логика возникновения отделение контента от представления и от логики борьба за интерактивность same origin policy
21 Same origin policy РесурсSOPКомментарии хоста хоста хоста
22 Same origin policy в JavaScript Window boundary SOP не позволит скрипту, загруженному с в одном окне манипулировать документом с Frame boundary SOP не позволит скрипту, загруженному с в одном фрейме манипулировать фреймом с Embedded scripts скрипт, внедренный в страницу через, будет считаться скриптом c домена Images & CSS картинки и таблицы стилей, загруженные со сторонних ресурсов, все равно считаются частью документа и становятся доступными JS
23 Вопросы для самостоятельного исследования (часть 3) HTML-документ открывается локально (double- click по файлу) можно ли из этого документа считывать локальные файлы с помощью схемы file:// ? Попробуйте осуществить кросс-доменный XMLHttpRequest из-под разных браузеров; опишите увиденную реакцию Чем отличается Same Origin Policy для JavaScript от Same Origin Policy для Java-апплетов? Найдите и опишите как можно больше способов сделать кросс-доменные запросы
24 Способы сделать HTTP-запрос Автоматически,,,, события JS С помощью пользователя ссылки Нажми меня! формы
25 Вопросы для самостоятельного исследования (часть 4) Какой запрос сформирует браузер, если: в теге не указать атрибут action? в теге не указать атрибут method? указать пустое имя параметра в поле типа text? не указать атрибут name в поле типа text? у кнопки submit не указать атрибут value? Как можно отправить форму без кнопки submit? Реализуйте HTTP-запрос из таблицы CSS-стилей Реализуйте XMLHttpRequest, который должен посылаться в результате обработки события onerror в теге
26 Способы реализации сеансов По IP-адресу HTTP-аутентификация URL-overwriting Скрытые поля форм + PostBack Cookies Ответ с домена docs.foo.com: Set-Cookie: LSID=DQAAAK…Eaem_vYg; Path=/accounts; Expires=Wed, 13-Jan :23:01 GMT; Secure; HttpOnly Set-Cookie: HSID=AYQEVn….DKrdst; Domain=.foo.com; Path=/; Expires=Wed, 13-Jan :23:01 GMT; HttpOnly Set-Cookie: SSID=Ap4P….GTEq; Domain=.foo.com; Path=/; Expires=Wed, 13-Jan :23:01 GMT; Secure; HttpOnly … ?
27 Вопросы?
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.