Privoxy – свободный веб-прокси с расширенными возможностями фильтрования интернет-контента для защиты конфиденциальности (приватности) пользователей сети Интернет, изменения содержания веб-страниц, управления cookies, ограничения доступа к некоторым сайтам и удаления рекламы, баннеров, всплывающих окон, а также любого другого нежелательного контента («интернет-мусора»).
Все политики обработки контента удобно настраивать посредством развитого веб-интерфейса, который после установки и запуска Privoxy будет доступен по адресу config.privoxy.org или (сокращённо) p.p.
Веб-интерфейс позволяет настраивать множество параметров работы Privoxy, переключать состояние его активности (в неактивном состоянии Privoxy работает как простейший прокси-сервер, перенаправляющий запросы на интернет-сервера, не анализирующий и не модифицирующий заголовки HTTP-протокола и не фильтрующий интернет-контент), а также получать исчерпывающую информацию о том, какие правила применяются при запросе тех или иных URL и где (в каком файле действий) эти правила были определены. В последнем случае предоставляются прямые ссылки для быстрого внесения соответствующих изменений с помощью встроенного редактора файлов действий (см. иллюстрацию).
Хотя Privoxy часто используется в качестве промежуточного звена между приложениями, использующими HTTP(S)-протокол и программой Tor – клиентом анонимной распределённой сети маршрутизаторов Onion Routers, при этом не следует забывать о том, что Privoxy является совершенно самостоятельной программой, защищающей интересы своих пользователей на уровне протокола HTTP аналогично тому, как Tor делает это на уровне базовых протоколов TCP/IP. Privoxy может с успехом применяться и без Tor, причём во многих случаях использование Tor вне связки с Privoxy или другим аналогичным фильтрующим прокси как минимум просто неэффективно, поскольку анализ IP-адреса является лишь одним из множества способов идентификации пользователей веб-сервисов, к тому же способов крайне ненадёжных в условиях дефицита публичных IP-адресов (в России).
Сфера применения Privoxy
Наиболее распространённые сферы применения Privoxy:
Техническая реализация Privoxy
Технически возможности Privoxy реализуются посредством модификации (замены и удаления) или блокирования загрузки данных:
При фильтрации на уровне протокола Privoxy анализирует HTTP-заголовки и подменяет их в случае необходимости согласно определяемому пользователем набору правил работы с интернет-сайтами для предотвращения передачи браузером какой-либо информации, позволяющей получить «отпечаток» сессии соединения с пользователем и легко отследить его среди множества других клиентов веб-сервисов впоследствии.
Хотя функции, ориентированные на работу с протоколом HTTP были реализованы в Privoxy относительно недавно. в настоящий момент они практически аналогичны возможностям преобразования веб-контента и также реализуются на основе фильтрации и замены с использованием регулярных выражений PCRE. Этот механизм обеспечивает возможности поточной модификации данных с использованием наиболее мощного и универсального PCRE-оператора s/// (известного в языке программирования Perl как оператор замены).
Логика и терминология Privoxy
Логически функциональность Privoxy реализуется на основе набора правил изменения контента. Для создания нового правила нужно определить во-первых, что будет модифицироваться (назовём это множеством объектов модификации) и каким образом эта модификация будет осуществляться (перечислить действия, влияющие на обработку контента).
Задать объекты модификации можно следующим образом:
Вырожденным случаем объекта модификации является URL без доменной и путевой части, где оставлен лишь разделитель между ними: «/» (просто один косой слэш). «/» ассоциирован со всем множеством корректных адресов сети Интернет. Он используется для формирования правил «политики по умолчанию», распространяющейся сразу на все интернет-сайты – именно поэтому действия модификации, ассоциированные с объектом «/», задаются в самой верхней секции файла default.action.
Действия по модификации контента бывают:
Это действия, алгоритм которых задан жёстко непосредственно в исходном коде Privoxy и не может быть изменён без модификации и перекомпиляции исходного кода;
Механизмы обработки контента, использующие простые форматы представления данных – одиночные строки, флаги (вида «да/нет»), числа и т. д.. Эти действия предусматривают передачу опциональных или обязательных параметров непосредственно внутри своего описания;
Механизмы обработки контента, использующие сложные форматы представления данных – например, регулярные выражения, и различные формы их представления – например, перечни (списки).
Ссылки