Privoxy

Из Википедии, бесплатной энциклопедии

Privoxy
Логотип программы Privoxy
Тип Прокси-сервер
Разработчик Разработчики Privoxy
Написана на C
Операционная система Кроссплатформенное программное обеспечение
Первый выпуск 2001
Последняя версия 3.0.34 (6 февраля 2023)
Репозиторий privoxy.org/git/privoxy.…
privoxy.org/gitweb/?p=pr…
Лицензия GNU GPL
Сайт privoxy.org
Логотип Викисклада Медиафайлы на Викискладе

Privoxy — это свободный прокси-сервер с расширенными возможностями фильтрования интернет-контента для защиты конфиденциальности пользователей сети Интернет, изменения содержания веб-страниц, управления cookies, обхода ограничения доступа к некоторым сайтам, удаления рекламы, баннеров, всплывающих окон, а также любого другого нежелательного контента.

Privoxy основан на Internet Junkbuster и выпущен под лицензией GNU General Public License. Программа работает на Linux, OpenWrt, DD-WRT, Windows, macOS, OS/2, AmigaOS, BeOS, и на большинстве разновидностей Unix-подобных ОС. Почти любой веб-браузер может использовать Privoxy. Исходный код, а также скомпилированное программное обеспечение размещено на SourceForge.[1] Исторически сложилось так, что Tor Project объединял в себе и связывал Privoxy с Tor, но это было прекращено в 2010 году, поскольку они продвигали свой собственный внутренний проект Tor Browser и рекомендовали использовать внешние прокси-серверы третьих сторон. Privoxy по-прежнему работает, если настроить его вручную, и по-прежнему рекомендуется для сторонних небраузерных приложений, которые изначально не поддерживают SOCKS.[2]

Сфера применения

[править | править код]

Наиболее распространённые сферы применения Privoxy:

  • Снижение расходов на поддержание IT-инфраструктуры организаций, в которых интернет-трафик и рабочее время сотрудников ощутимо дороги. Посредством установки фильтрующего прокси-сервера вводится исполнительный механизм ограничений загрузки «паразитного» дорогостоящего контента;
  • Как средство контроля и очистки трафика индивидуальными пользователями;
  • Для тестирования веб-серверов и веб-приложений, — для отладки собственных реализаций протокола HTTP — разработчиками.

Техническая реализация

[править | править код]

Технически возможности Privoxy реализуются посредством модификации (замены и удаления) или блокирования загрузки данных:

  • На уровне заголовков протокола HTTP;
  • На уровне веб-контента.

При фильтрации на уровне протокола Privoxy анализирует HTTP-заголовки и подменяет их в случае необходимости согласно определяемому пользователем набору правил работы с интернет-сайтами для предотвращения передачи браузером какой-либо информации, позволяющей получить «след» сессии соединения с пользователем и легко отследить его среди множества других клиентов веб-сервисов впоследствии.

Хотя функции, ориентированные на работу с протоколом HTTP, были реализованы в Privoxy относительно недавно, в настоящий момент они практически аналогичны возможностям преобразования веб-контента и также реализуются на основе фильтрации и замены с использованием регулярных выражений PCRE. Этот механизм обеспечивает возможности поточной модификации данных с использованием наиболее мощного и универсального PCRE-оператора s/// (известного в языке программирования Perl как оператор замены).

Логика и терминология

[править | править код]

Логически функциональность Privoxy реализуется на основе набора правил изменения контента. Для создания нового правила нужно определить, во-первых, что будет модифицироваться (назовём это множеством объектов модификации) и каким образом эта модификация будет осуществляться (перечислить действия, влияющие на обработку контента).

Задать объекты модификации можно следующим образом:

  1. Непосредственно перечислив целевые URL-адреса, где должен быть опущен префикс http:// и могут быть пропущены доменная или путевая части;
  2. Определив некое множество URL с помощью маски наподобие традиционных регулярных выражений, содержащей подстановочные символы-шаблоны «*», «?» и диапазоны символов (в квадратных скобках).

Вырожденным случаем объекта модификации является URL без доменной и путевой части, где оставлен лишь разделитель между ними: «/» (просто один косой слэш). «/» ассоциирован со всем множеством корректных адресов сети Интернет. Он используется для формирования правил «политики по умолчанию», распространяющейся сразу на все интернет-сайты — именно поэтому действия модификации, ассоциированные с объектом «/», задаются в самой верхней секции файла default.action.

Действия по модификации контента бывают:

  1. Простыми. Это действия, алгоритм которых задан жёстко непосредственно в исходном коде Privoxy и не может быть изменён без модификации и перекомпиляции исходного кода
  2. Параметрически простыми. Механизмы обработки контента, использующие простые форматы представления данных — одиночные строки, флаги (вида «да/нет»), числа и т. д. Эти действия предусматривают передачу опциональных или обязательных параметров непосредственно внутри своего описания
  3. Параметрически сложными. Механизмы обработки контента, использующие сложные форматы представления данных — регулярные выражения и различные формы их представления — например, перечни, списки.

Все методы обработки контента удобно настраивать посредством развитого веб-интерфейса, который после установки и запуска Privoxy будет доступен по адресу config.privoxy.org или (сокращённо) p.p

Русифицированный веб-интерфейс Privoxy
Русифицированный веб-интерфейс Privoxy

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

Хотя Privoxy часто используется в качестве промежуточного звена между приложениями, использующими HTTP(S)-протокол и программой Tor — клиентом анонимной распределённой сети маршрутизаторов Onion Routers, при этом не следует забывать, о том что Privoxy является совершенно самостоятельной программой, защищающей интересы своих пользователей на уровне протокола HTTP аналогично тому, как Tor делает это на уровне базовых протоколов TCP/IP. Privoxy может с успехом применяться и без Tor, причём во многих случаях использование Tor вне связки с Privoxy или другим аналогичным фильтрующим прокси как минимум просто неэффективно, поскольку анализ IP-адреса является лишь одним из множества способов идентификации пользователей веб-сервисов, к тому же способов крайне ненадёжных в условиях дефицита публичных IP-адресов (в России).

Примечания

[править | править код]
  1. Brockmeier, Joe Tool of the Month: Privoxy. Dr. Dobb's Journal (17 июня 2005). Дата обращения: 27 марта 2014. Архивировано 28 марта 2014 года.
  2. Tor Frequently Asked Questions. Дата обращения: 11 октября 2022. Архивировано 2 августа 2013 года.