---
# System prepended metadata

title: Гришанов Матвей Сергеевич – WEB Basic Практическая работа 1. Введение в Web технологии

---

# Гришанов Матвей Сергеевич – 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)

---
