Предполагается, что Вы прочли общую статью про БЕЛЫЙ СПИСОК и в точности выполнили всё, что в ней предлагается предварительно сделать.
Иными словами, у Вас уже работает прокси-сервер Privoxy и Вы предприняли все упомянутые мной необходимые меры безопасности, чтобы юный раздолбай неразумный ребёнок ничего не смог поменять в настройках или как-то вмешаться в работу Privoxy.
Запрещаем в Privoxy все сайты
Сначала запретим в Privoxy вообще все сайты.
Чтобы запретить в Privoxy все сайты, нужно открыть в директории C:\privoxy файл user.action
Из-за "нестандартного" расширения файла может выскочить окно с вопросом "Каким образом Вы хотите открыть этот файл?"
Тогда выберите "Блокнот" и нажмите "OK".
Файл user.action нужно промотать до самого конца.
Если Вы при установке Privoxy всё сделали точно по статье БЕЛЫЙ СПИСОК, то в конце файла user.action у Вас должны быть строки:
{+https-inspection}
.
{+ignore-certificate-errors}
.
Дописываем в конец файла user.action строки:
{ +block{Total ban} +add-header{HTTP/1.0 404 Not Found} }
.
Все изменения в файлах user.action и user.filter Privoxy "видит" сразу (если, конечно, не были допущены ошибки).
Теперь Privoxy будет банить все сайты без исключения, самым беспощадным образом. :-)
Точка в данном случае означает "всё" (любой URL).
Проверим, как Privoxy банит сайты хотя бы на примере https://ipmy.ru или https://ya.ru. Как видно, вместо начальной страницы Яндекса Privoxy выдаёт сообщение о блокировке.
Внешний вид всех сообщений Privoxy можно настроить в шаблонах в поддиректории templates.
Выборочно разрешаем в 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
Точка в начале доменного имени означает, что мы одновременно разбаниваем и все поддомены сайта.
Смотрим, что получилось. Видно, что сайт mail.ru открывается, но как-то не так...
Чтобы понять, в чём же дело, нажимаем клавишу F12, чтобы открыть в браузере консоль разработчика.
В консоли разработчика выбираем вкладку "Сеть" и нажимаем клавишу F5, чтобы обновить страницу.
Изучив вывод информации во вкладке "Сеть", можно понять, что сайт mail.ru использует информацию со сторонних доменов, которые, естественно, блокируются Privoxy.
На каких-то из них находятся изображения / CSS-файлы, нужные JavaScript'ы и т.п. - такие домены также надо внести в белый список.
С каких-то доменов подтягивается навязчивая реклама - эти домены в белый список вносить не следует.
Кстати, какие-то баннеры с сайта mail.ru Privoxy может банить "по собственной инициативе", своими фильтрами по-умолчанию.
Дописываем в конец файла user.action строку:
.imgsmail.ru
(Очевидно, что на поддоменах imgsmail.ru есть что-то, без чего сайт mail.ru нормально отображаться не может.)
Нажимаем клавишу F5, чтобы обновить страницу.
Видно, что сайт mail.ru стал отображаться почти как надо.
Однако видны не все изображения.
Попробуем разобраться, в чём дело.
Кликаем на неотобразившейся картинке правой кнопкой мыши и выберем "Исследовать".
При этом откроется консоль разработчика на вкладке "Инспектор", в которой виден соответствующий картинке HTML-код.
Очевидно, что в нашем случае картинка находится на поддомене сайта mradx.net - внесём и его в наш белый список.
Дописываем в конец файла user.action строку:
.mradx.net
Нажимаем клавишу F5, чтобы обновить страницу.
Видно, что сайт mail.ru стал отображаться без глюков. :-)
Давайте повнимательнее посмотрим на информацию из консоли разработчика по сайту mail.ru...
Зайдём, например, во вкладку "Отладчик".
Что это за скрипт за такой - core-logger.min.js? Что он логирует, куда отправляет - непонятно...
Попробуем его забанить! :-)
Чтобы забанить отдельную страницу, дописываем в конец файла 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 при это работает.
Как видно, Privoxy применяет правила последовательно. И каждое последующее правило отменяет предыдущее (естественно, только в рамках указанных после этого правила URL'ов).
Т.е. сначала мы баним буквально всё.
Затем именно для сайта mail.ru мы это правило "бана всего" отменяем.
А потом для одного-единственного URL'а сайта mail.ru приходится создавать отдельное банящее этот URL правило, т.к. в предыдущем правиле был разбанен целый домен.
Попробуем теперь разблокировать раздел "Карты" сайта yandex.ru: https://yandex.ru/maps/.
(При этом все остальные разделы Яндекса (включая главную страницу) останутся заблокированными.)
В файле user.action в правиле, разрешающем сайт mail.ru, дописываем строку:
.yandex.ru/maps/
Видно, что URL https://yandex.ru/maps/ открывается, а остальные страницы / разделы / поддомены Яндекса - нет.
(В нашем примере это https://yandex.ru, https://mail.yandex.ru и https://yandex.ru/games/.
Как и в случае с mail.ru, страница https://yandex.ru/maps/ открылась как-то не так...
Очевидно, что Яндекс тоже использует какие-то поддомены.
Нажимаем F12 и в консоли разработчика (вкладка "Сеть") смотрим, чего не хватает для корректного отображения Яндекс.Карт.
Быстро становится понятно, что много чего Яндекс хранит на поддоменах доменов yastatic.net и yandex.net - вносим их в соответствующее правило в файле user.action.
Обновляем страницу (нажимаем F5) - вуаля! Яндекс.Карты отображаются корректно.
Помимо консоли разработчика также полезно анализировать и 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 ;-) .
Если Вы создаёте белый список сайтов для ребёнка, то Вам, как родителям, лучше знать, какие конкретно сайты нужны Вашему ребёнку.
Спасибо за внимание и уделённое время!