GoodbyeDPI icon indicating copy to clipboard operation
GoodbyeDPI copied to clipboard

RegExp в блэклистах

Open Nicks7777 opened this issue 1 year ago • 4 comments

I've made sure there's no existing feature request / Я убедился, что такой функциональности еще никто не предлагал

  • [X] I've made sure there's no existing feature request / Я убедился, что такой функциональности еще никто не предлагал

Describe your feature / Опишите ваше предложение

Необходимо добавить шаблоны RegExp в блэклисты, либо добавить хотя бы простейшие шаблоны. И постоянно мониторить URL с шаблонами в онлайне на уровне шаблонов, а не на уровне IP. Если это возможно, конечно (если URLи передаются в пакетах, а не только IPшники). Тогда не будут повторяться проблемы с Ютюбом, когда в DPI добавляют новые серверы.

Nicks7777 avatar Aug 08 '24 10:08 Nicks7777

Regexp очень сильно замедлит трафик.

EgorWeders avatar Aug 08 '24 11:08 EgorWeders

Да ладно, это чем же это?

Nicks7777 avatar Aug 08 '24 11:08 Nicks7777

Не эксперт в этом , но regexp медленный впринципе (про c++ qt уж точно могу так сказать), а ещё он работает со строками , а не числовым значением. Медленный в контексте пересылки пакетов.

EgorWeders avatar Aug 08 '24 11:08 EgorWeders

И что? Один раз за сессию работы GoodbyDPI проверить каждый требуемый URL - это что-то сверхтяжелое? Проверил, занес в таблицу IPшников и всё.

Nicks7777 avatar Aug 08 '24 11:08 Nicks7777

@Nicks7777, поясните, в каком случае нужен regexp. Приведите пример. Напоминаю, что домены в blacklist обрабатываются зонами. Иными словами, добавление example.com применяет обход блокировок на всех поддоменах этого домена.

ValdikSS avatar Aug 09 '24 10:08 ValdikSS

решил еще раз сегодня проверить, но не вышло: ростелеком вот именно сейчас не блокирует ютюб, все работает и без гудбая. а на момент открытия темы было так: со штатным russia-youtube.txt (youtube.com,youtu.be,googlevideo.com,ytimg.com) ютюб не работал, хотя накануне все было ОК. полез в логи браузера и начал добавлять урлы один за другим, и пока все не добавил, ютюб не хотел. вот мой новый список (accounts.youtube.com googleapis.com googlevideo.com gvt1.com i.ytimg.com i9.ytimg.com jnn-pa.googleapis.com play.google.com static.doubleclick.net video.google.com www.youtube.com youtu.be youtube.com youtubeeducation.com youtubekids.com youtube-nocookie.com youtube-ui.l.google.com yt.be yt3.ggpht.com ytimg.com). Поэтому и пришла мысль о шаблонах. А проверить решил вашу фразу "добавление example.com применяет обход блокировок на всех поддоменах этого домена". Честно, я этого тогда не заметил (youtube.com, accounts.youtube.com, www.youtube.com). А сейчас проверить не могу - Ростелекомовский DPI сейчас не блокирует ютюб.

Update: проверил еще раз, все блокируется, с вашим списком не работает, работает только с моим. так что про поддомены и шаблоны вопрос остается.

Nicks7777 avatar Aug 09 '24 11:08 Nicks7777

Еще как блокирует(

EgorWeders avatar Aug 09 '24 11:08 EgorWeders

Update: проверил еще раз, все блокируется, с вашим списком не работает, работает только с моим. так что про поддомены и шаблоны вопрос остается.

Nicks7777 avatar Aug 09 '24 11:08 Nicks7777

Update: проверил еще раз, все блокируется, с вашим списком не работает, работает только с моим. так что про поддомены и шаблоны вопрос остается.

В чём ваш вопрос?

ValdikSS avatar Aug 09 '24 11:08 ValdikSS

  1. ваша фраза "добавление example.com применяет обход блокировок на всех поддоменах этого домена" неверна.
  2. необходимо введение шаблонов в записях блэклиста (желательно RegExp). подробности читайте выше.

Nicks7777 avatar Aug 09 '24 11:08 Nicks7777

ваша фраза "добавление example.com применяет обход блокировок на всех поддоменах этого домена" неверна.

Ну здрасьте. Сопоставление доменов работает так, как я описал.

подробности читайте выше.

Я не вижу ни одного примера, где можно было бы задействовать regexp. Как его применить для описанного выше случая? Какое правило вы бы написали?

ValdikSS avatar Aug 09 '24 11:08 ValdikSS

слушай, Владик. я тебе не работодатель и ТЗ для тебя писать не намерен. я тебе предложил нормальную рабочую идею, как можно упростить блеклисты и расширить функционал. ты хочешь, чтобы я за тебя написал код? десять-пятнадцать строчек. зачем это мне? я за три минуты написал свой блеклист. а уговаривать тебя я не намерен. всего хорошего!

Nicks7777 avatar Aug 09 '24 11:08 Nicks7777

Когда опенсурсному деву говорят про тз и работодателя : Screenshot_20240807_223941_Instagram.jpg

EgorWeders avatar Aug 09 '24 11:08 EgorWeders

Если я правильно понял автора тикета, то шаблоны вида youtube*.com. Т.е. не поддомены, а маска "внутри" самого домена. В целом звучит здраво, вроде бы, если исходить даже из конкретно его примеров.

Amegatron avatar Aug 10 '24 20:08 Amegatron

Если я правильно понял автора тикета, то шаблоны вида youtube*.com. Т.е. не поддомены, а маска "внутри" самого домена. В целом звучит здраво, вроде бы, если исходить даже из конкретно его примеров.

Представьте , что youtube.com будет давать разные домены для загрузки (youtube-chk__cj.com , youtubecfzts.com и т.д.), он много таких может давать на самом деле. И это придётся каждый раз домены проверять регуляркой, либо их заносить в файл.

EgorWeders avatar Aug 11 '24 01:08 EgorWeders

Ну из этих соображений - да, поддержка шаблонов для блэклиста была бы полезной с функциональной т.з. Но дальше действительно встает вопрос производительности. Если делать, например, регуляркой, то это будет означать full-scan всего блэклиста. Если, например, обойтись всего-лишь звездочкой в середине домена, то уже проще, но все равно надо переделывать будет список с хэш-мапы на что-то другое. Либо иметь разные типы блэклистов: один тип - простой для списка доменов, как сейчас. Другой - для шаблонных записей. Часть работы можно будет упростить кэшем (если домен один раз проверили, и он в списке, запоминаем его в буквальном виде), но это тоже потребует дополнительной реализации. Другими словами, штука была бы полезной. Но у кого-то должно найтись время и желание это запилить)

Amegatron avatar Aug 11 '24 05:08 Amegatron

Если делать, например, регуляркой, то это будет означать full-scan всего блэклиста.

Фильтровать то , что мы уже сами добавили в блеклист ? Не совсем понял.

Часть работы можно будет упростить кэшем (если домен один раз проверили, и он в списке, запоминаем его в буквальном виде), но это тоже потребует дополнительной реализации.

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

EgorWeders avatar Aug 11 '24 05:08 EgorWeders

Фильтровать то , что мы уже сами добавили в блеклист ? Не совсем понял.

Если у нас есть блэклист в виде regexp'ов, то чтобы проверить, находится ли запрашиваемый домен (конкретный) среди них, нужно будет пройти весь этот блэклист и проверить каждую из этих регулярок на совпадение.

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

Чистить безусловно нужно будет. Но пока это больше мысли вслух, поскольку навскидку он по идее может полезным (в типовых сценариях мы к одному и тому же домену обращаемся многократно).

Amegatron avatar Aug 11 '24 06:08 Amegatron