# Гришанов Матвей Сергеевич – WEB Basic Практическая работа 1. Введение в Web технологии [toc] ## Установка и настройка Linux ubuntu 20.04 Создаём новую машину в VMware и производим процесс установки операционной системы ubuntu 20.04. ![](https://i.imgur.com/HzOAKy5.png) ![](https://i.imgur.com/BCAR8wa.jpg) ![](https://i.imgur.com/CYTGV99.jpg) :::success :star: Установка успешно завершена! ::: ## Настройка подключения к репозиториям **docker** Скачиваем апдейты. ``` apt-get update ``` ![](https://i.imgur.com/WCiwvGY.png) --- После этого устанавливаем ca-certificates \ curl \ gnupg \ lsb-release. ``` sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release ``` ![](https://i.imgur.com/1RfYcNJ.png) --- Добавляем официальный GPG ключ докера. `mkdir -p /etc/apt/keyrings` ![](https://i.imgur.com/ju4GluD.png) ![](https://i.imgur.com/M1des1o.png) `curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg` ![](https://i.imgur.com/SB6sGFW.png) --- Настраиваем репозиторий. ``` echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null ``` ![](https://i.imgur.com/xEvNEI6.png) --- Снова делаем апдейт. Затем устанавливаем последнюю версию Docker Engine. ``` apt-get update ``` ![](https://i.imgur.com/T3C622B.png) `sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin` ![](https://i.imgur.com/Zhjft5i.png) --- ## Установка **Docker CE** `sudo apt-get install docker-ce -y` ![](https://i.imgur.com/FmRcyFo.png) Проверяем работу docker. `systemctl status docker` ![](https://i.imgur.com/GxGYI1B.png) --- ## Установка веб-приложения **https://hub.docker.com/r/bkimminich/juice-shop** Устанавливаем WEB-приложение. ``` docker pull bkimminich/juice-shop ``` ![](https://i.imgur.com/SSZsqhl.png) ``` docker run --rm -p 3000:3000 bkimminich/juice-shop ``` ![](https://i.imgur.com/tn1f6FI.png) --- ![](https://i.imgur.com/or9ALjI.jpg) :::success :star: Juice-shop успешно запущен! ::: --- ## Изучение запросов браузера к приложению и форме регистрации пользователей Изучив запросы браузера к приложению и форме регистрации пользователей, можно сделать вывод, что основные методы формирования этих запросов -- GET и POST. ![](https://i.imgur.com/Y8enOBp.png) При регистрации также формируется POST запрос со значениями: ``` Status: 201 File: /api/Users/ ``` ![](https://i.imgur.com/Asq3iZM.png) --- Если использовать неверный пароль, то также будет сформирован POST запрос: ``` Status: 401 File: login ``` ![](https://i.imgur.com/mhyMJHR.png) --- Если использовать верный пароль, то будет сформирован POST запрос: ``` Status: 200 File: login ``` ![](https://i.imgur.com/SYc0L2Z.png) --- Также при регистрации сформировался POST запрос для секретного вопроса: ``` Status: 201 File: /api/SecurityAnswers/ ``` ![](https://i.imgur.com/1h7msyq.png) --- ## Формирование запроса к приложению через **curl** `curl -I "192.168.116.141:3000"` ![](https://i.imgur.com/F2YlyY2.png) --- ## Формирование запроса к приложению через **powershell** ``` Invoke-WebRequest -Uri 192.168.116.141:3000 ``` ![](https://i.imgur.com/U1G4m6P.png) --- ## Изучение ответа приложения и его парсинг с помощью утилит **jq** Первым делом устанавливаем jq. `sudo apt-get install jq` ![](https://i.imgur.com/GvQFwGp.png) `curl localhost:3000/api/Challenges | jq` ![](https://i.imgur.com/3cBgdtH.png) ---