{"id":19842532,"url":"https://github.com/bin-umar/http-proxy","last_synced_at":"2026-05-10T12:12:53.195Z","repository":{"id":42064656,"uuid":"211135215","full_name":"bin-umar/http-proxy","owner":"bin-umar","description":"HTTP/HTTPS-proxy in Node.js ","archived":false,"fork":false,"pushed_at":"2023-06-23T19:05:05.000Z","size":268,"stargazers_count":1,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-11T11:46:27.833Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bin-umar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-09-26T16:34:16.000Z","updated_at":"2024-11-15T08:21:50.000Z","dependencies_parsed_at":"2025-01-11T11:44:38.932Z","dependency_job_id":"090b8ca3-abb0-4937-8ddc-5e44d83ca90e","html_url":"https://github.com/bin-umar/http-proxy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bin-umar%2Fhttp-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bin-umar%2Fhttp-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bin-umar%2Fhttp-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bin-umar%2Fhttp-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bin-umar","download_url":"https://codeload.github.com/bin-umar/http-proxy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241212007,"owners_count":19927885,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T12:34:56.419Z","updated_at":"2026-05-10T12:12:48.152Z","avatar_url":"https://github.com/bin-umar.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HTTP/HTTPS-proxy по курсу [Безопастность интернет-приложений](https://park.mail.ru/blog/view/7/) в образовательном проекте [Технопарк](https://park.mail.ru) (3 семестр)\n## Задание:\nНужно написать http прокси-сервер, через который можно будет отправлять трафик из браузера. Необходимо сохранять запросы в произвольном хранилище (БД, текстовые файлы и тп) и иметь возможность заново отправлять сохраненные запросы (примерно как history burp proxy и burp repeater)\nНужно поддержать:\n1. Проксирование HTTP запросов (Соединение устанавливается подобным образом https://en.wikipedia.org/wiki/Proxy_server#Web_proxy_servers) - 3 балла\n2. Проксирование 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 балла\n3. Возможность отправки сохраненных запросов (как burp repeater) - 4 балла\nРеализацию можно делать на любом языке программирования. Можно использовать встроенны или сторонние библиотеки для работы с сетью, парсинга http, tls. Нельзя использовать библиотеки, которые уже реализовали http proxy (например, https://mitmproxy.org/)\n\n### Задание было выполнено с использованием ***Node.js*** и ***sqlite3***\n\n### Как запустить\n\n- **git clone** \n- **npm i \u0026\u0026 npm start** (Если у вас уже установлен Node.js \u0026\u0026 npm)\n- Сервер запускаеться на порт 9000\n\n### Запустить reapeter \n    \n    node app.js -rr={{Integer}}\n **-rr** нужео передать Id запроса внутри Бд которого надо повторить, если ничего не передано повторяются все запросы \n (результат выведиться в консоль)\n\n\n### Выполнил: [Джахонгир Тулфоров](https://github.com/bin-umar)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbin-umar%2Fhttp-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbin-umar%2Fhttp-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbin-umar%2Fhttp-proxy/lists"}