Агрегатор прокси-доступа : Что "под капотом"
Опубликовано: Бармалей · 20.02.2019 · 00:02 ••• Обновление: 13.01.2021 · 07:39 0

…Как понимаю, вы уже прочитали общий обзор и хотите поглубже разобраться что и как в этом аддоне…)

Это нормально, работа с Агрегатором прокси-доступа (АПД) требует знания некоторых особенностей проксирования, позволяющих вам решить отдельные вопросы и избежать проблем при его эксплуатации.

Итак, в этой статье:


Отличия от оригинала

По отношению к исходному аддону АПД имеет следующие отличительные особенности:

  • Используются официальные* и автономные рабочие зеркала проекта ProxyPy.org (текущая версия: 33 прокси).

    * Не используются с версии 2019.6.4 в связи с отключением с 03.06.2019 основного домена проекта и (в дальнейшем) переходом на платную основу (на ресурсе появилась "политика монетизации"). В настоящее время сервера проекта вновь доступны (в том числе – и на бесплатной основе и по протоколу https), но проверить адекватность их работы у автора пока "руки не дошли".)

  • Возможность работы через другие пулы бесплатных анонимных прокси (текущая версия: 3 пула / 12 прокси).
  • Возможность работы через пул серверов национальных доменов Переводчика Google (домены 65 стран).
  • Возможность просмотра "мобильных" версий (Google.Mobilizer) и кэшированных (Google) версий страниц.
  • Вызов из контекстного меню любой страницы – передача URL контекста через прокси (в отдельной вкладке).
  • Опция запоминания/использования только какого-то одного прокси (напр., "понравившегося" из-за скорости).
  • Улучшена функция перебора (выбора случайного сервера) – в каждом сеансе прокси автоматически меняется.
  • Возможность выбора типа прокси-серверов – HTTP/HTTPS, деление по (не)анонимности, конкретным пулам и т.д..
  • Опция запоминание последнего введённого URL (для удобства при оценке скорости работы конкретных прокси).
  • Обработка ошибок и пустых строк запроса URL (если пустая – автоматически используется адрес текущей вкладки).

Побочный эффект для Windows XP

Одну давно известную проблему теперь можно решить ещё и с использованием АПД: через большинство прокси можно без проблем открывать страницы с ошибкой "ERR_SSL_VERSION_OR_CIPHER_MISMATCH".

Такие "новомодные" страницы без каких-либо сложностей открываются через прокси и позволяют смотреть контент в любых даже самых старых версиях браузеров. Никаких проблем с работой остальных аддонов при этом не возникает.

С технической точки зрения это связано с тем, что при проксировании ваш браузер работает уже не с оригинальным сервером "шибко модного" сайта, а с вполне "понятным" ему протоколом шифрования прокси-сервера. Все проблемы обмена сертификатами и "договаривания" о протоколах обмена в этом случае ложатся на плечи прокси, который затем передаёт клиенту запрошенный контент.


Технические детали

Ниже приведены некоторые технические подробности по исходному коду и отдельным функциям АПД.

Исходный код, интерфейс и API

Код использует только чистый JS (ES5), все неподдерживаемые в "старых" браузерах функции заменены на аналоги.

Все скрипты работают в "строгом" режиме – для гарантированного выполнения функций и облегчения отлова ошибок.

АПД не имеет фонового процесса и не занимает память в покое, после обработки запроса – быстрая автовыгрузка.

Аддон работает на всех страницах, в т.ч. – локальных, служебных и на "огороженных" сайтах типа гуглозина.

Всё управление работой расширения осуществляется через попап-окно, вызываемое по щелчку на иконке на тулбаре:

Интерфейс окна предельно прост и интуитивно понятен, для всех "кликабельных" элементов добавлены подсказки.

Страница настроек всех основных и дополнительных опций и функций, включая управление типами прокси, является частью этого же попапа, отдельной страницы опций нет (в манифесте также отсутствует).

Для отрисовки интерфейса попапа и страницы настроек не используются никакие сторонние JS/CSS библиотеки, весь интерфейс работает на чистом HTML с минимально необходимым набором стилей и скриптов.

Для вызова попапа применяется API chrome.browserAction. Расширение загружается только по необходимости, при вызове, никакие инжектируемые элементы на веб-страницах не используются, выбор URL через контекстное меню работает только за счёт стандартного API chrome.contextMenus. Разрешение activeTab применяется для упрощения контекстных действий на текущих страницах.

Особенности использования пула прокси VPN Book

При использование пула прокси vpnbook.com адрес целевой страницы формируется по XHR-запросу. Это даёт некоторую задержку, но так сделано с целью гарантированного получения зашифрованного хэша адреса.

При выполнении запроса адреса (вместо его локального вычисления) меняется иконка/подсказка текущей вкладки:

  • только если запрос перехода вызван через контекстное меню, в попап-окне показывается сообщение о запросе;
  • по окончании обработки запроса для иконки/подсказки устанавливаются параметры по умолчанию.

В браузерах версий до 37 в этом случае запрошенная страница всегда открывается в новой пустой вкладке. Это сделано с целью упрощения кода и связано с ограничениями обработки XHR – в старых версиях часть заголовков ответов не распознаётся.

Дополнительные примечания по коду

Практических ограничений по версии браузера не имеется, используемые API работают в версиях 25-27 и выше.

Язык интерфейса, сообщений, меню, подсказок и описания – только русский (жёстко зашит в коде).

Исходный код НЕ обфусцирован, исключительно с целью удобства при возможных доработках.
Кому это критично – удалите комментарии и пропустите через компрессоры..х))


Известные проблемы

URL кириллических доменов: если они не заданы в виде puny-кода = URL не распознаётся.

При этом выдаётся ошибка. Во избежание этого НЕ надо пытаться вбивать руками такие ссылки!

Решение: задаём ссылки в puny-коде или копипастим из браузера – и всё работает.

Возможный редирект с форков AppSpot на официальный пул ProxyPy.

Такое бывает редко и при этом проблемы с просмотром запрошенного через прокси не возникнет – вместо одного прокси будет использован другой.

Единственное отличие – если форк запрашивался по HTTPS, после редиректа протокол меняется на HTTP. Это связано с тем, что официальный пул прокси НЕ работает по httpS-протоколу.

Решено: в версии 2019.6.4 удалены все зеркала AppSpot, являющие простыми редиректорами на основной пул, а в наборах AppSpot-пулов оставлены только автономные прокси (с полноценным движком ProxyPy).

Возможная агрессивная реклама при использовании отдельных прокси из пулов AppSpot.

Проявляется в виде всплывающих окон и/или прочего мусора, добавляемого в контент проксируемой страницы. Не связана непосредственно с движком ProxyPy, добавляется "шибко жадными" владельцами этих прокси.

Решение: режем весь контент с доменов juicyads.com / juicyads.rock / jads.co любым способом (до hosts-файла).

При доступе с IPv4 возможна некорректная обработка ссылок, с доменом, указанным в виде IPv6-адреса.

Причина – не все прокси умеют обрабатывать URL вида "https://[адрес_IPv6]/…" (прокси проекта ProxyPy – умеют).

Решение: в таких случаях выбираем любые прокси пула ProxyPy.


Ресурсы и ссылки по разработке АПД



Защита приватности Бармалей
Бармалей 20.02.2019 13.01.2021 292 0.0

Общие технические сведения о разработке
Статус разработки:Активная, поддерживается автором
Язык интерфейса:Русский
Версия браузера:29+
Протестировано в:SRWare Iron 31/49 + 360 Extreme Explorer 11/12 (CR-69/78)
Технологии и API:Чистый JS (ES5), API: contextMenus, activeTab

Поделиться

Всего комментариев: 0
close