Фильтрация поверх уже разработанного прокси - PullRequest
0 голосов
/ 24 ноября 2018

В настоящее время я пытаюсь разработать фильтр, с помощью которого я могу блокировать определенные URL-адреса, а также блокировать на основе ключевых слов, которые могут быть в данных, полученных из ответа http.

Просто для пояснения IЯ работаю на компьютере под управлением Windows 10 x64 для этого проекта.

Чтобы сделать это, я быстро понял, что мне нужен веб-прокси.Я проверил около 6 прокси, написанных на python, которые я нашел на github.

Это проект, который я пытался использовать (некоторые из них Python3, некоторые 2):

https://github.com/abhinavsingh/proxy.py/blob/develop/proxy.py
https://github.com/inaz2/proxy2/blob/master/proxy2.py
https://github.com/inaz2/SimpleHTTPProxy - this one is the earlier version of the top one 
https://github.com/FeeiCN/WebProxy

Abhinavsingh'sПрокси (первый в списке):

что я хочу сделать

Я хочу, чтобы прокси мог блокировать сайты на основе запросов исодержимое возвращено, мне также нужно, чтобы фильтр находился в отдельном файле и был универсальным, чтобы я мог применять его на каждом сайте и каждом запросе / ответе.

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

то, что я пытался

Я включил прокси-сервер в Google Chrome «Настройки открытого прокси» и запустил скрипт.Это выглядело довольно многообещающе, и я заметил, что я могу вставить вызов функции фильтра в строку 383 в функцию _process_request, чтобы я мог вернуться к ней, возможно, к другому хосту, на который можно перенаправить или просто заблокировать.Это сработало частично для меня.

Проблемы

Прежде всего, я не смог полностью перенаправить / заблокировать сайты.Иногда это работало, иногда нет.Еще одна проблема, с которой я столкнулся, заключалась в том, что я понял, что не могу получить доступ к содержимому сайта, который вернулся, если это https.

Кроме того, фильтрация ответа, к сожалению, была мне не понятна.

Я также заметил, что proxy2 (второй в списке) может решить эту проблему, связанную с фильтрацией содержимого страницы https, но я не смог выяснить, как заставить эту функцию работать (а также я думаю, что для этого нужны утилиты linux).

Процесс, который я описал выше, был в значительной степени тем, что я пытался работать на каждом прокси в списке.В некоторых прокси, таких как proxy2.py, я вообще не мог понять, что мне нужно делать.

Если кому-то удалось создать фильтр поверх этого прокси или любого другого из этого списка, и он может помочь мне понятькак это сделать, буду благодарен, если вы прокомментируете ниже.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...