Современные веб-приложения
2//Что такое контейнеризация?
3//Что такое контейнеризация?
4// Контрольные вопросы (1)
5// Контрольные вопросы (1)
6// Контрольные вопросы (2)
7// Контрольные вопросы (2)
8// Контрольные вопросы (3)
9// Контрольные вопросы (3)
10//URL структура
11//URL структура
12//HTTP-протокол
13//HTTP-протокол
14//Структура HTTP запросов
13//Методы HTTP-запросов
14// Заголовки (headers)
15// Ответы (response)
16// Статус коды
17//Headers
18// Различия между версиями HTTP
19// HTTP 3
20// Что такое web-сервер
20// Что такое Web Application
21//Статический / динамический контент
22// Функции cookie файлов
23//Хранилища Cookie
24//Public Key Infrastructure
25//Схема работы SSL/TLS
26//Веб-сервисы
27//Заголовок Content-type
28//Модификация заголовков
29//CDN-сети
30//Контрольные вопросы
31//Полезные ссылки
1.93M
Categories: internetinternet informaticsinformatics

Современные веб-приложения. Лекция 4. Программно-аппаратные средства защиты информации

1. Современные веб-приложения

Современные вебприложения
Лекция 4.
Программно-аппаратные средства защиты информации

2. 2//Что такое контейнеризация?

3. 3//Что такое контейнеризация?

• Контейнеризация — метод, с помощью которого программный
код упаковывается в единый исполняемый файл вместе с
библиотеками и зависимостями, чтобы обеспечить его
корректный запуск. Такие файлы называют контейнерами.

4. 4// Контрольные вопросы (1)

• Для чего нужен Docker?

5. 5// Контрольные вопросы (1)

• Для чего нужен Docker?
• Позволяет создавать, развертывать, запускать, обновлять и
управлять контейнерами — стандартизированными
исполняемыми компонентами, объединяющими исходный код
приложения с библиотеками операционной системы (ОС) и
зависимостями, необходимыми для запуска этого кода в любой
среде.

6. 6// Контрольные вопросы (2)

• Для чего нужен Kubernetes? Что такое k8s?

7. 7// Контрольные вопросы (2)

• Для чего нужен Kubernetes? Что такое k8s?
• Kubernetes - операционная система для облачных решений,
представляющая собой открытую платформу для управления
кластерами контейнерных приложений и сервисов.
• Kubernetes = k8s (это сокращенное наименование)

8. 8// Контрольные вопросы (3)

• Из каких компонентов состоит архитектура Kubernetes?

9. 9// Контрольные вопросы (3)

• Из каких компонентов состоит архитектура Kubernetes?
• Кластер (состоит как минимум из одной ноды)
• Нода (состоит из набора машин, которые запускают
контейнерные приложения)
• Контейнеры (запускаются в ноде)

10. 10//URL структура

11. 11//URL структура

12. 12//HTTP-протокол

13. 13//HTTP-протокол

14. 14//Структура HTTP запросов

15. 13//Методы HTTP-запросов

Основные
• GET
• POST
Остальные
• OPTIONS
• HEAD
• DELETE
• PUT
• TRACE

16. 14// Заголовки (headers)

• GET /home.html HTTP/1.1
• Host: developer.mozilla.org
• User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101
Firefox/50.0
• Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
• Accept-Language: en-US,en;q=0.5
• Accept-Encoding: gzip, deflate, br
• Referer: https://developer.mozilla.org/testpage.html
• Connection: keep-alive
• Upgrade-Insecure-Requests: 1
• If-Modified-Since: Mon, 18 Jul 2016 02:36:04 GMT
• If-None-Match: "c561c68d0ba92bbeb8b0fff2a9199f722e3a621a"
• Cache-Control: max-age=0

17. 15// Ответы (response)

18. 16// Статус коды

1. Сообщения для передачи информации о чем-то
(100–199)
2. Сообщения об успехе
(200–299)
3. Сообщения об редиректе
(300–399)
4. Сообщения о клиентской ошибке
(400–499)
5. Сообщения о серверной ошибке (500–599)

19. 17//Headers

• Access-Control-Allow-Origin: *
• Connection: Keep-Alive
• Content-Encoding: gzip
• Content-Type: text/html; charset=utf-8
• Date: Mon, 18 Jul 2016 16:06:00 GMT
• Etag: "c561c68d0ba92bbeb8b0f612a9199f722e3a621a"
• Keep-Alive: timeout=5, max=997
• Last-Modified: Mon, 18 Jul 2016 02:36:04 GMT
• Server: Apache
• Set-Cookie: mykey=myvalue; expires=Mon, 17-Jul-2017 16:06:00 GMT; Max-Age=31449600; Path=/; secure
• Transfer-Encoding: chunked
• Vary: Cookie, Accept-Encoding
• X-Backend-Server: developer2.webapp.scl3.mozilla.com
• X-Cache-Info: not cacheable; meta data too large
• X-kuma-revision: 1085259
• x-frame-options: DENY

20. 18// Различия между версиями HTTP

HTTP/09
• HTTP/1.1
• Для каждого запроса новое tcp соединение.
• Нет заголовков.
• Поддерживаемые методы: GET
• Постоянные соединения, позволяют
использовать одно TCP соединение, для
создания нескольких запросов
• Появилась оптимизация.
• Поддерживаемые методы:
• GET. HEAD, POST, PUT, DELETE, TRACE, OPTIONS
HTTP/1.0
• Для каждого запроса новое tcp соединение.
• Поддерживает заголовки
• Поддерживаемые методы: GET, HEAD, POST
• HTTP/2
• Двоичный протокол.
• Мультиплексный протокол.
• Сжимает заголовки.

21. 19// HTTP 3

• Основан на концепции HTTP/2. Использует протокол QUIC
(Работает поверх UDP) вместо TCP/TLS на транспортном уровне.

22. 20// Что такое web-сервер

Задачи WEB Serverа:
• Отдавать статический контент.
• Понимать протокол HTTP.
• Защищать информацию (tls).
• Идентифицировать пользователей / Вести логи.
• Передавать запрос в случае необходимости Web Application Server

23. 20// Что такое Web Application

Задачи WEB Application Server:
• Реализует доступ к СУБД
• Реализует возможность исполнять код на ЯП (бизнес-логика)

24. 21//Статический / динамический контент

• Html страницы
• Видео
• Изображения
• файлы
• Информация меняется в
зависимости от разных
факторов

25. 22// Функции cookie файлов

• Cookie — небольшой фрагмент данных, отправленный вебсервером и хранимый на компьютере пользователя.
Аутентификация
пользователей
Хранение
предпочтений и
настроек
пользователя
Отслеживания
состояния сеанса
доступа
пользователя

26. 23//Хранилища Cookie

Локальное хранилище необходимо для хранения на
долгих срок данных на
клиенте.
Сессионное хранилище - в
отличие от Локального, здесь
данные живут пока не
закроется вкладка, или окно
браузера.

27. 24//Public Key Infrastructure

• Центр сертификации (Certificate
Authority) — является основной
структурой, формирующей
цифровые сертификаты
подчиненных центров сертификации
и конечных пользователей.
• Задача центра сертификации —
подтверждать подлинность ключей
шифрования с помощью
сертификатов электронной подписи.
• Сертификат открытого ключа — это
данные пользователя/сервера и его
открытый ключ, скреплённые
электронной подписью
удостоверяющего центра.

28. 25//Схема работы SSL/TLS

29. 26//Веб-сервисы

Веб-сервисы — это реализация абсолютно четких интерфейсов
обмена данными между различными приложениями, которые
написаны не только на разных языках, но и распределены на
разных узлах сети.
• SOAP (Simple Object Access Protocol)
• REST (Representational State Transfer) API
• XML-RPC (XML Remote Procedure Call)

30. 27//Заголовок Content-type

• Пример тела HTTP запроса:
• `{"username":"username",
"password": "password", "age": 1337}`
• Тогда как эквивалент через
стандартный html form:
• `username=username&password=pass
word&age=1337`
• Также необходимо в HTTP
заголовках указать, что
используемый тип тела запроса json, указав:
• `Content-Type: application/json`
• или если xml:
• `Content-Type: application/xml`

31. 28//Модификация заголовков

Инструменты
• Postman
• Burp Suite
Расширения браузера
• Postman Interceptor
• Talend API Tester

32. 29//CDN-сети

33. 30//Контрольные вопросы

• Из чего состоит HTTP-запрос?
• Что такое headers?
• Для чего может использоваться Burp-suite?
• Назовите типы взаимодействия с веб-сервисами?

34. 31//Полезные ссылки

• Postman: Основы тестирования API
• https://habr.com/ru/companies/vk/articles/750096/
• Лучшие инструменты для тестирования API
• https://habr.com/ru/companies/otus/articles/760432/
English     Русский Rules