An open API service indexing awesome lists of open source software.

https://github.com/bin-umar/http-proxy

HTTP/HTTPS-proxy in Node.js
https://github.com/bin-umar/http-proxy

Last synced: about 1 year ago
JSON representation

HTTP/HTTPS-proxy in Node.js

Awesome Lists containing this project

README

          

# HTTP/HTTPS-proxy по курсу [Безопастность интернет-приложений](https://park.mail.ru/blog/view/7/) в образовательном проекте [Технопарк](https://park.mail.ru) (3 семестр)
## Задание:
Нужно написать http прокси-сервер, через который можно будет отправлять трафик из браузера. Необходимо сохранять запросы в произвольном хранилище (БД, текстовые файлы и тп) и иметь возможность заново отправлять сохраненные запросы (примерно как history burp proxy и burp repeater)
Нужно поддержать:
1. Проксирование HTTP запросов (Соединение устанавливается подобным образом https://en.wikipedia.org/wiki/Proxy_server#Web_proxy_servers) - 3 балла
2. Проксирование HTTPS запросов (Необходимо создать свой корневой сертификат, на лету при обработке sni https://en.wikipedia.org/wiki/Server_Name_Indication генерировать сертификаты для запрашиваемого домена https://gist.github.com/fntlnz/cf14feb5a46b2eda428e000157447309, само соединение с прокси устанавливается с помощью метода connect https://en.wikipedia.org/wiki/HTTP_tunnel#HTTP_CONNECT_method ) - 3 балла
3. Возможность отправки сохраненных запросов (как burp repeater) - 4 балла
Реализацию можно делать на любом языке программирования. Можно использовать встроенны или сторонние библиотеки для работы с сетью, парсинга http, tls. Нельзя использовать библиотеки, которые уже реализовали http proxy (например, https://mitmproxy.org/)

### Задание было выполнено с использованием ***Node.js*** и ***sqlite3***

### Как запустить

- **git clone**
- **npm i && npm start** (Если у вас уже установлен Node.js && npm)
- Сервер запускаеться на порт 9000

### Запустить reapeter

node app.js -rr={{Integer}}
**-rr** нужео передать Id запроса внутри Бд которого надо повторить, если ничего не передано повторяются все запросы
(результат выведиться в консоль)

### Выполнил: [Джахонгир Тулфоров](https://github.com/bin-umar)