В настоящее время я пытаюсь разработать фильтр, с помощью которого я могу блокировать определенные 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, я вообще не мог понять, что мне нужно делать.
Если кому-то удалось создать фильтр поверх этого прокси или любого другого из этого списка, и он может помочь мне понятькак это сделать, буду благодарен, если вы прокомментируете ниже.
Спасибо.