Руководство

CGI-прокси: как работают веб-прокси и когда их использовать

Подробное руководство по CGI-прокси (веб-прокси): откуда они взялись, как переписывают URL и скрывают ваш IP, типичные случаи использования и риски для безопасности по сравнению с SOCKS/HTTP.

Roman Bulatov
Эксперт по прокси и сетевой инфраструктуре · · 5 мин чтения

Что такое CGI-прокси?

CGI-прокси — это веб-прокси, который полностью работает в вашем браузере. В отличие от HTTP- или SOCKS-прокси, для которых нужно настроить операционную систему или приложение, CGI-прокси открывается через обычную веб-страницу. Вы вводите URL в форму на сайте прокси, и прокси загружает страницу вместо вас, переписывая ссылки, чтобы последующие запросы тоже шли через прокси. Поскольку он не требует настройки на стороне клиента, его также называют веб-прокси или HTTP-прокси (хотя технически он использует CGI-скрипт на сервере).

Краткая история

CGI-прокси появились в конце 1990-х и начале 2000-х, когда программисты писали простые скрипты на Perl, PHP или Python для пересылки HTTP-запросов. Самыми известными были PHProxy, а позже Glype: они позволяли любому быстро создать сайт прокси. Эти инструменты стали популярны для обхода рабочих фильтров и школьных фаерволов, потому что не требовали установки — нужен был только браузер. Со временем появилось много публичных CGI-прокси, но большинство исчезли или стали ненадёжными из-за затрат на обслуживание и проблем с безопасностью.

Как работают CGI-прокси

Основной механизм — перезапись URL. Когда вы вводите целевой URL вроде http://example.com, CGI-прокси кодирует его в собственный URL, примерно так:

http://cgiproxy.example.com/browse.php?u=example%2Ecom

Прокси загружает страницу, затем обрабатывает HTML, заменяя все ссылки, действия форм и даже URL JavaScript на переписанные версии, ведущие обратно на прокси. Так все последующие переходы по ссылкам и отправки форм тоже проходят через прокси. Ваш настоящий IP-адрес никогда не отправляется на целевой сайт; вместо него используется IP-адрес прокси. Прокси также может изменять заголовки, чтобы убрать идентифицирующую информацию.

Вот упрощённый пример псевдокода того, что делает CGI-прокси:

function handleRequest($url) {
  $content = file_get_contents($url);
  $content = rewriteLinks($content, 'http://cgiproxy.example.com/browse.php?u=');
  header('Content-Type: text/html');
  echo $content;
}

На практике современные прокси также должны работать с cookies, SSL (обычно подключаясь к целевому сайту по HTTPS, а затем отдавая содержимое пользователю по HTTPS) и иногда частично выполнять JavaScript. Однако чистые CGI-прокси часто не справляются с сильно интерактивными сайтами.

Типичные сценарии использования

  • Обход простых блокировок: CGI-прокси могут обходить блокировки по URL (например, блокировку youtube.com), потому что домен прокси разрешён. Это работает в школах или кафе с базовой фильтрацией контента.
  • Быстрая анонимность: Для разовых проверок (например, проверить какой у меня IP) или посещения сайта, не раскрывая свой IP, CGI-прокси даёт быстрое решение без настройки.
  • Проверка контента с гео-ограничениями: Некоторые пользователи пытаются получить доступ к гео-заблокированным видео или статьям, выбирая прокси в другом регионе.
  • Защита в публичном Wi-Fi: Когда установить VPN нельзя, CGI-прокси хотя бы скрывает ваш просмотр от местных перехватчиков — правда, доверие при этом переходит к оператору прокси.

Ограничения и риски

CGI-прокси — не инструмент приватности для чувствительных действий. Вот основные недостатки:

  • Провалы в шифровании: даже если сам прокси работает по HTTPS, соединение от прокси до целевого сайта может остаться незашифрованным, если сайт не поддерживает HTTPS. На этом участке ваши данные открыты.
  • JavaScript и интерактивные элементы: большинство CGI-прокси не выполняют сложный JavaScript. Вход в аккаунт, видеоплееры и одностраничные приложения часто ломаются. Прокси может переписывать только статический HTML.
  • Работа с сессиями: некоторые прокси неправильно обращаются с cookie, и сессия рвётся. Вас может раз за разом выбрасывать из аккаунта.
  • Скорость: через прокси проходит каждая страница и каждый встроенный ресурс — картинки, скрипты, — поэтому всё может работать очень медленно, особенно на бесплатных публичных прокси.
  • Логи и внедрение: оператор прокси видит весь ваш незашифрованный трафик — URL, данные форм, в том числе пароли, — если вы работаете по HTTP. Бесплатные прокси часто держат неизвестные люди, которые могут вести логи, продавать данные или вставлять в страницы рекламу и вредоносный код.
  • Блокировка на многих сайтах: крупные сайты и стриминговые сервисы активно блокируют известные диапазоны IP CGI-прокси, потому что с ними связаны злоупотребления и обход региональных ограничений.

CGI-прокси и прокси HTTP/SOCKS: сравнение

ПараметрCGI-проксиПрокси HTTP/SOCKS
НастройкаНе нужна (только браузер)Настройка системы или приложения
СкоростьНиже (двойное проксирование)Выше (прямое туннелирование)
Уровень анонимностиНизкий (оператор видит всё)Средний и высокий (при правильной настройке)
Поддержка протоколовВ основном только HTTP/HTTPSSOCKS поддерживает TCP/UDP и любые протоколы
НадёжностьЧасто не работает, живёт недолгоУстойчивее (особенно платные)

Чтобы оценить анонимность прокси, воспользуйтесь проверкой прокси: она показывает заголовки и утечки IP. Если приватность важна всерьёз, CGI-прокси проигрывает настроенному SOCKS5 или VPN. Зато для быстрой задачи в сети с ограничениями CGI-прокси может оказаться единственным вариантом.

Когда CGI-прокси уместен, а когда нет

CGI-прокси подойдёт, если:

  • Нужно ненадолго обойти простой фильтр по URL в школе или на работе.
  • Настроить прокси на устройстве нельзя: всё заблокировано, прав администратора нет.
  • Нужно посмотреть одну-две страницы, а о безопасности думать не приходится.

От CGI-прокси стоит отказаться, если:

  • Банк, почта и всё, где есть пароли или личные данные.
  • Просмотр видео и веб-приложения, которым нужен JavaScript.
  • Любая задача, где нужна анонимность и от самого оператора прокси.

Если нужно надёжнее и безопаснее, возьмите отдельный список бесплатных прокси с SOCKS или HTTP и настройте его в браузере или приложении. Ещё можно посмотреть прокси по локации и найти подходящий регион.

В заключение помните: все публичные прокси — CGI, SOCKS или HTTP — связаны с рисками. Ими управляют третьи стороны, которые могут вести журнал вашего трафика. По возможности всегда используйте сайты с HTTPS и никогда не вводите конфиденциальные данные через прокси, который вы не контролируете. Соблюдайте правовые нормы: обход блокировок может нарушать политику допустимого использования вашей сети, а при сборе данных следует соблюдать robots.txt и условия использования.