Белый список сайтов: как разрешить просматривать только определённые сайты

Предполагается, что Вы прочитали предыдущую статью про БЕЛЫЙ СПИСОК и в точности выполнили всё, что в ней предлагается предварительно сделать.

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

Запрещаем в Privoxy все сайты

Сначала запретим в Privoxy вообще все сайты.

Чтобы запретить в Privoxy все сайты, нужно открыть в директории C:\privoxy файл user.action

C:\privoxy\user.action


Из-за "нестандартного" расширения файла может выскочить окно с вопросом "Каким образом Вы хотите открыть этот файл?"

Каким образом Вы хотите открыть этот файл? Windows 10

Тогда выберите "Блокнот" и нажмите "OK".

Всегда использовать это приложение для открытия action файлов


Файл user.action нужно промотать до самого конца.

файл user.action конфиг Privoxy


Если Вы при установке Privoxy всё сделали точно по статье БЕЛЫЙ СПИСОК, то в конце файла user.action у Вас должны быть строки:

{+https-inspection}
.

{+ignore-certificate-errors}
.

user.action https-inspection ignore-certificate-errors Privoxy


Дописываем в конец файла user.action строки:

{ +block{Total ban} +add-header{HTTP/1.0 404 Not Found} }
.

Все изменения в файлах user.action и user.filter Privoxy "видит" сразу (если, конечно, не были допущены ошибки).

Privoxy block total ban add header 404 Not Found


Теперь Privoxy будет банить все сайты без исключения, самым беспощадным образом. :-)

Точка в данном случае означает "всё" (любой URL).

Проверим, как Privoxy банит сайты хотя бы на примере https://ipmy.ru или https://ya.ru. Как видно, вместо начальной страницы Яндекса Privoxy выдаёт сообщение о блокировке.
Внешний вид всех сообщений Privoxy можно настроить в шаблонах в поддиректории templates.

Privoxy Request Blocked внешний вид бан

Выборочно разрешаем в Privoxy отдельные сайты либо отдельные страницы

Что ж, начнём вести свой белый список сайтов.   :-)

Попробуем выборочно разбанить отдельный сайт, например, https://mail.ru.

Дописываем в конец файла user.action строки, отменяющие действие ранее добавленных правил block{Total ban} и add-header{HTTP/1.0 404 Not Found} для указанных сайтов:

{ -block{Total ban} -add-header{HTTP/1.0 404 Not Found}}
.mail.ru

Точка в начале доменного имени означает, что мы одновременно разбаниваем и все поддомены сайта.

Privoxy разрешаем отдельный сайт с поддоменами


Смотрим, что получилось. Видно, что сайт mail.ru открывается, но как-то не так...

mail.ru заблокированы JavaScript Privoxy


Чтобы понять, в чём же дело, нажимаем клавишу F12, чтобы открыть в браузере консоль разработчика.
В консоли разработчика выбираем вкладку "Сеть" и нажимаем клавишу F5, чтобы обновить страницу.

F12 консоль разработчика Firefox


Изучив вывод информации во вкладке "Сеть", можно понять, что сайт mail.ru использует информацию со сторонних доменов, которые, естественно, блокируются Privoxy.
На каких-то из них находятся изображения / CSS-файлы, нужные JavaScript'ы и т.п. - такие домены также надо внести в белый список.
С каких-то доменов подтягивается навязчивая реклама - эти домены в белый список вносить не следует.
Кстати, какие-то баннеры с сайта mail.ru Privoxy может банить "по собственной инициативе", своими фильтрами по-умолчанию.

Дописываем в конец файла user.action строку:
.imgsmail.ru
(Очевидно, что на поддоменах imgsmail.ru есть что-то, без чего сайт mail.ru нормально отображаться не может.)

сеть сетевые запросы F12 консоль разработчика Firefox


Нажимаем клавишу F5, чтобы обновить страницу.

Видно, что сайт mail.ru стал отображаться почти как надо.
Однако видны не все изображения.

mail.ru заблокированы изображения Privoxy


Попробуем разобраться, в чём дело.

Кликаем на неотобразившейся картинке правой кнопкой мыши и выберем "Исследовать".
При этом откроется консоль разработчика на вкладке "Инспектор", в которой виден соответствующий картинке HTML-код.

HTML код Инспектор F12 консоль разработчика Firefox


Очевидно, что в нашем случае картинка находится на поддомене сайта mradx.net - внесём и его в наш белый список.

Дописываем в конец файла user.action строку:
.mradx.net

разбаниваем необходимые для работы mail.ru домены сайты Privoxy


Нажимаем клавишу F5, чтобы обновить страницу.

Видно, что сайт mail.ru стал отображаться без глюков. :-)

www.mail.ru


Давайте повнимательнее посмотрим на информацию из консоли разработчика по сайту mail.ru...
Зайдём, например, во вкладку "Отладчик".
Что это за скрипт за такой - core-logger.min.js? Что он логирует, куда отправляет - непонятно...
Попробуем его забанить!   :-)

Отладчик F12 консоль разработчика Firefox


Чтобы забанить отдельную страницу, дописываем в конец файла user.action строки, возобновляющие действие правил block{Total ban} и add-header{HTTP/1.0 404 Not Found}:

{ +block{Total ban} +add-header{HTTP/1.0 404 Not Found} }
.mail.ru/core-logger.min.js

Теперь отдельно взятый с сайта mail.ru скрипт https://mail.ru/core-logger.min.js банится, но сам сайт mail.ru при это работает.

баним отдельную страницу https://mail.ru/core-logger.min.js Privoxy

Как видно, Privoxy применяет правила последовательно. И каждое последующее правило отменяет предыдущее (естественно, только в рамках указанных после этого правила URL'ов).
Т.е. сначала мы баним буквально всё.
Затем именно для сайта mail.ru мы это правило "бана всего" отменяем.
А потом для одного-единственного URL'а сайта mail.ru приходится создавать отдельное банящее этот URL правило, т.к. в предыдущем правиле был разбанен целый домен.

Попробуем теперь разблокировать раздел "Карты" сайта yandex.ru: https://yandex.ru/maps/.
(При этом все остальные разделы Яндекса (включая главную страницу) останутся заблокированными.)

В файле user.action в правиле, разрешающем сайт mail.ru, дописываем строку:
.yandex.ru/maps/

разбаниваем раздел сайта Яндекс с картами yandex.ru/maps/ Privoxy


Видно, что URL https://yandex.ru/maps/ открывается, а остальные страницы / разделы / поддомены Яндекса - нет.
(В нашем примере это https://yandex.ru, https://mail.yandex.ru и https://yandex.ru/games/.

заблокированные https://yandex.ru mail.yandex.ru yandex.ru/games/ игры


Как и в случае с mail.ru, страница https://yandex.ru/maps/ открылась как-то не так...
Очевидно, что Яндекс тоже использует какие-то поддомены.

Нажимаем F12 и в консоли разработчика (вкладка "Сеть") смотрим, чего не хватает для корректного отображения Яндекс.Карт.

F12 анализируем, какие домены использует сайт yandex.ru/maps/


Быстро становится понятно, что много чего Яндекс хранит на поддоменах доменов yastatic.net и yandex.net - вносим их в соответствующее правило в файле user.action.

разбаниваем yastatic.net разрешаем yandex.net Privoxy user.action


Обновляем страницу (нажимаем F5) - вуаля! Яндекс.Карты отображаются корректно.

Яндекс.Карты yandex.ru/maps/


Помимо консоли разработчика также полезно анализировать и LOG, ведущийся Privoxy. Например в случае Яндекса там были такие вот строки:
Request: https://api.passport.yandex.ru/registration_status/check
Crunch: Blocked: https://api.passport.yandex.ru/registration_status/check

Это наводит на мысль, что для владельцев учётной записи на Яндексе без разблокировки соответствующих URL'ов не получится авторизоваться...

А ещё вот капча мне в процессе всех этих экспериментов выпала, тоже со своими специфическими URL'ами.....

Все эти URL'ы следует разрешить в соответствующем правиле в файле user.action:

.passport.yandex.ru     ### api.passport.yandex.ru
.yandex.ru/captcha      ### https://yandex.ru/captchapgrd
.yandex.ru/showcaptcha
.yandex.ru/checkcaptcha

Послесловие к статье

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

Всё, что было изложено выше - это всего лишь учебный пример.

Что конкретно должно быть в Вашем белом списке сайтов - я не знаю. :-)   Наверное, та же почта Яндекса, GosUslugi.ru, мой блог www.balpom.ru ;-)   .
Если Вы создаёте белый список сайтов для ребёнка, то Вам, как родителям, лучше знать, какие конкретно сайты нужны Вашему ребёнку.

Спасибо за внимание и уделённое время!


© 1999 - 2024 www.Balpom.ru