Страниц: 1 2 3 [Все]   Вниз
  Отправить эту тему    Печать  
Автор Тема: Двусписочная система: классификатор трафика и политика фильтрации  (Прочитано 39441 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Кирилл
Beta tester
*****

Репутация: +5/-1
Offline Offline

Сообщений: 124


« : 31 января 2007, 08:16:20 »

Попытался сформулировать запросы к программе от конечного пользователя-неспециалиста (но и не совсем чайника). Получился список вида: хочу чтобы <определенный контент> на <Н-ском сайте> был доступен <следующим образом>. Контент - картинки, видео, звуки, флеш, статический, динамический, большого размера и т.д. и т.п. в различных сочетаниях. <Н-ский сайт> - URL. <Доступ> - глаза бы мои его не видели, возможность чтения без доступа к сети, обновлять раз в <срок>, включая <всегда> и <никогда>, не брать из сети и т.д.
Отсюда получается ровно два списка.
Первый описывает контент по любым (в идеале, конечно) параметрам исходящих и входящих заголовков.
Второй описывает что делать с контентом на том или ином сайте (или группе сайтов, в том числе .*).
Преимущества подхода
1. Первым списком можно легко делиться между пользователями и безболезненно его обновлять, так как он НЕ определяет никаких действий, а уточнение понятия "картинка" принесет пользу ВСЕМ, вне зависимости от того, желают ли их видеть, кешировать и обновлять!
2. Второй список делает редактирование похожим на аналогичные настройки браузеров с возможностью настройки кеширования как в целом, так и для отдельных узлов  (например, настройки кеширования для Оперы) только с намного более широкими возможностями.
3. На нижнем уровне могут оставаться существующие списки - они однозначно формируются из двух описанных. Более того, большинству пользователей хватит перевого списка по умолчанию или скачанного у "гуру".
Например, помните, почему на руборде не хотели делиться черным списком? Да потому, что там был разнородный контент! Со списком же контента можно спокойно вести и распространять отдельно "реклама", "чаты", "порно", "P2P", "развлечения" и т.д. А решать что делать каждый пользователь сможет сам.
Сообщить модератору   Записан
Кирилл
Beta tester
*****

Репутация: +5/-1
Offline Offline

Сообщений: 124


« Ответ #1 : 05 февраля 2007, 07:47:42 »

Странно... Ни одного отзыва, хотя бы разгромного, хотя рядышком идут горячие дебаты по теме настройки кеширования Подмигивающий
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #2 : 05 февраля 2007, 08:28:36 »

Странно... Ни одного отзыва, хотя бы разгромного
Ты слишком расплывчато изложил - не понятно ни что именно тебе видится, ни зачем это нужно.
Сообщить модератору   Записан
Кирилл
Beta tester
*****

Репутация: +5/-1
Offline Offline

Сообщений: 124


« Ответ #3 : 05 февраля 2007, 12:50:36 »

2 Rick
Хм...
Проблема нынешних списков - они сделаны на уровне "что делать".
Тот же черный список - туда включается ЛЮБАЯ нежелательная ссылка, а критерии нежелательности у каждого свои. Одни режут порно, другие чаты, третьи флеш, четвертые рекламу, пятые все это вместе. В результате списки одного пользователя малоценны для другого. Далее, в ряде ситуаций, рассмотренных на этом же форуме, пользователи вынужденны дублировать строки в нескольких списках.
Поэтому я предлагаю ввести список, в котором определяется только содержимое, но не определяется, что с ним делать!
В каждой строке списка находится название категории содержимого, его URL, дополнительные условия (referrer, Content-type, размер, IP-адрес и т.д. и т.п.)
Например:
№  Категория               URL                                                     Условия
1   Большие картинки   .*\.(bmp|gif|img|ipg|jp(e)?g|png|cur)$     Content-length>64000
2   Картинки                .*\.(bmp|gif|img|ipg|jp(e)?g|png|cur)$
3   Флеш                     .*\.(swf)$
4   Звуки                    .*\.(mid(i)?|mp3)$
5   Реклама                 .*google-analytics\.com/urchin\.js$
6   Реклама                 .*adv\.directad\.ru/\?
8   Счетчики               .*counter\.mystat-in\.net/cgi-bin/.+\.cgi\?
9   Большие загрузки   .                                                          Content-length>1000000
10  Все                        .
Для каждой категории может быть задано несколько строчек в списке.
А в списках, которые определяют, что делать с тем или иным содержимым, указывается уже категория Улыбка
Это позволяет избежать дублей, но не только!
Список категорий содержимого не зависит от политики кеширования, а значит подходит всем пользователям и его можно совершенно безболезненно раздавать всем желающим!
Сообщить модератору   Записан
Death_Master
Beta tester
*****

Репутация: +1/-1
Offline Offline

Сообщений: 82


« Ответ #4 : 16 февраля 2007, 05:41:34 »

Попробуй написать алгоритм того, как это должно работать и посмотреть, есть ли гемор с написанием и выполнением такого алгоритма Улыбка
Сообщить модератору   Записан
taimael
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 8


« Ответ #5 : 21 апреля 2007, 09:27:56 »

пример:

пусть, в куче правил используется конструкция
(userpic|photo|image|pic|showpic|foto|thumb|img|picshow)
допустим, попался сайт с буквосочетанием userfoto, которое теперь необходимо добавить во все правила с этой конструкцией
а далее сидишь немаленькое время плюешься и правишь Грустный
или не правишь ибо лень Улыбка


предлагаю:

1. реализовать в HC принцип "типовых конструкций"
2. создать для "типовых конструкций" отдельный список

пример:

в списке "типовые конструкции" для конструкции
(userpic|photo|image|pic|showpic|foto|thumb|img|picshow)
задаем идентификатор #1#
теперь во всех правилах, использующих эту конструкцию, заменяем ее на #1#
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #6 : 21 апреля 2007, 10:24:09 »

пусть, в куче правил используется конструкция
(userpic|photo|image|pic|showpic|foto|thumb|img|picshow)

А разве нельзя всю эту "кучу правил" объединить в 1 универсальное?
Сообщить модератору   Записан
taimael
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 8


« Ответ #7 : 21 апреля 2007, 15:58:52 »

А разве нельзя всю эту "кучу правил" объединить в 1 универсальное?

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

кстати, еще в + к моему предложению то, что правила станут короче и понятнее
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #8 : 26 апреля 2007, 21:02:55 »

Проблема нынешних списков - они сделаны на уровне "что делать".
Тот же черный список - туда включается ЛЮБАЯ нежелательная ссылка, а критерии нежелательности у каждого свои. Одни режут порно, другие чаты, третьи флеш, четвертые рекламу, пятые все это вместе. В результате списки одного пользователя малоценны для другого. Далее, в ряде ситуаций, рассмотренных на этом же форуме, пользователи вынужденны дублировать строки в нескольких списках.
Поэтому я предлагаю ввести список, в котором определяется только содержимое, но не определяется, что с ним делать!
В каждой строке списка находится название категории содержимого, его URL, дополнительные условия (referrer, Content-type, размер, IP-адрес и т.д. и т.п.)
Для каждой категории может быть задано несколько строчек в списке.
А в списках, которые определяют, что делать с тем или иным содержимым, указывается уже категория Улыбка
Это позволяет избежать дублей, но не только!
Список категорий содержимого не зависит от политики кеширования, а значит подходит всем пользователям и его можно совершенно безболезненно раздавать всем желающим!
Полностью поддерживаю. Чрезвычайно полезная, на мой взгляд, идея. Жаль, что как-то ушла в забвение.
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #9 : 26 апреля 2007, 23:07:36 »

Идея то сама-по-себе красивая. Но зависит от конкретного воплощения (опиши алгоритм), и, главное, не стыкуется с нынешним интерфейсом HC.
Сообщить модератору   Записан
Кирилл
Beta tester
*****

Репутация: +5/-1
Offline Offline

Сообщений: 124


« Ответ #10 : 27 апреля 2007, 12:15:51 »

Цитировать
Идея то сама-по-себе красивая. Но зависит от конкретного воплощения (опиши алгоритм), и, главное, не стыкуется с нынешним интерфейсом HC.
Почему не стыкуется? Те же списки с регулярными выражениями и URL... Кто разбирается в нынешних - легко поймет и новые, а для новичков новые списки проще и легче.

Конкретное воплощение с алгоритмом:
1. При поступлении запроса от браузера просматривется список категорий (по порядку) с проверкой условий по URL и параметрам исходящего заголовка. Составляется упорядоченный (в порядке занесения) список сработавших категорий, включая также те, которые требуют дополнительной проверки входящего заголовка.
2. Просматривается список действий - по порядку ТОЛЬКО по отмеченным категориям с учетом URL. Составляется упорядоченный список подходящих записей.
3. Если для категории в этой записи не требуется уточнение входящего заголовка - запрос обрабатывается в соответсвии с указанными в списке действиями. Если действия в списке противоречат друг другу - приоритет имеет находящееся выше по списку.
4. Если требуется обработка входящего заголовка - то список действий проверяется дальше до первой подходящей записи с учетом данных входящего заголовка.

Списки по виду и настройке очень похожи на нынешние - список категорий на большинство из них, список действий - на белый.
С точки зрения пользователя - в большинстве случаев не надо менять список действий, можно легко настроить особое поведения для конкретного сайта. Освоение новой функциональности при обработке URL куда удобнее - добавляются прежде всего варианты действий, а структура списков не меняется.
С точки зрения реализации - поиск по списку категорий можно распараллелить (по нити для каждой категории), поиск по списку действий - ускорить за счет фильтрации по категориям и индексирования по URL как в Proxomiton'e (ведь все сложные регулярные выражения - в списке категорий, а тут можно вообще оставить адреса в привычном виде).
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #11 : 27 апреля 2007, 13:37:05 »

Кирилл

Приведи пример списка "Действий".
В частности интересует состав колонок и пример настройки нескольких не противоречащих друг другу действий (скажем, "запись в кэш" и "не обновлять") для одной Категории.

Где будут задаваться критерии свежести для "Не обновлять"?
Что будет со списками "Переадресация" и "Преобразование URL"?
Где брать/хранить входящие заголовки? В какой момент их проверять?
Сообщить модератору   Записан
Кирилл
Beta tester
*****

Репутация: +5/-1
Offline Offline

Сообщений: 124


« Ответ #12 : 02 мая 2007, 14:43:47 »

DenZZZ

Колонки списка действий.
1. URL: лучше всего только в простом виде - для ускорения поиска с помощью индексирования.
2. Категория: одна из категорий, определенных в соответствующем списке.
3. Действие: одно из возможных действий ((Не) блокировать, (Не) загружать из сети, (Не) брать из кеша, (Не) обновлять и т.д.) Наличие двух вариантов каждого действия (с "не" и без) позволит уменьшитиь размер белого списка или вообще без него обойтись.
4. Условие - дополнительное условие исполнения действия. Например, срок хранения для действия Не обновлять.
Несколько не противоречащих друг другу действий задается просто включением нескольких строк в список Улыбка

Списки "Переадресация" и "Преобразование URL" трогать не нужно - они работают отдельно от остальных. Разве что в них полезно добавить поля "Сайт" и "Исключение".

Входящие заголовки - с них начинается ответ http-сервера. Проверять - в момент получения этого ответа. В большинстве случаев этого можно избежать, например блокирование рекламы условий, зависящих от входящего заголовка, не содержит, а значит сработает без запроса к серверу.
Сообщить модератору   Записан
Кирилл
Beta tester
*****

Репутация: +5/-1
Offline Offline

Сообщений: 124


« Ответ #13 : 24 мая 2007, 15:44:10 »

Жалко, что опять тема заглохла...
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #14 : 24 мая 2007, 16:07:53 »

Кирилл
Цитировать
Несколько не противоречащих друг другу действий задается просто включением нескольких строк в список
Получается, что список твоих действий можно конверитировать в набор нынешних списков?
Сообщить модератору   Записан
Кирилл
Beta tester
*****

Репутация: +5/-1
Offline Offline

Сообщений: 124


« Ответ #15 : 25 мая 2007, 07:43:06 »

mai62
Цитировать
Получается, что список твоих действий можно конверитировать в набор нынешних списков?
Можно. Что и радует Улыбка
Список категорий+список действий можно конвертануть в нынешние списки.
Разница: никаких дубликатов в разных списках - все регулярные выражения входят в список категорий по одному разу; список действий сравнительно короткий - масса рекламных URL входит в список категорий.
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #16 : 25 мая 2007, 11:28:09 »

Значит для начала это можно попробовать реализовать в виде отдельной программы. Eсли это дело получит положительный резонанс, то я это встрою в НС.
Сообщить модератору   Записан
taimael
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 8


« Ответ #17 : 26 мая 2007, 15:03:27 »

идея хорошая
было бы интересно ее потыкать

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

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


предлагаю для начала сделать обсуждаемый список "категория-url-условие"
чтоб при составлении правил, например, с правой кнопки мыши отображался столбец "категория", и можно было выбрав какое-то из забитых в нем значений, вставить его в правило
т.е. манипулированить "категориями" при создании правил в имеющихся сейчас списках
Сообщить модератору   Записан
Кирилл
Beta tester
*****

Репутация: +5/-1
Offline Offline

Сообщений: 124


« Ответ #18 : 28 мая 2007, 07:44:35 »

Цитировать
- убьется наглядность, уже сейчас сложно найти чтото в разросшихся списках, а если все будет в одной куче...
То ничего страшного не произойдет Подмигивающий Давно уже пора вводить поиск и фильтрацию (по категории, например) при просмотре списков. А наглядность, наоборот, появится - сейчас порядок срабатывания списков из интерфейса неочевиден (без блоксхемы не разобраться). Со списком действий все будет намного прозрачнее - срабатывает то, что выше в списке.
Цитировать
- в ряде случаев исчезнет простота, например, вместо быстрого закидывания урла в черный список, теперь нужно будет еще и найти/выставить подходящие категории/параметры
Это еще почему? Что мешает иметь в контекстном меню команду "Добавить URL с категорией XXX"?
Простота добавится - если раньше один и тот же URL в нескольких вариантах требовалось добавлять в несколько разных списков, то теперь достаточно занести его только в список категорий.
Сообщить модератору   Записан
Кирилл
Beta tester
*****

Репутация: +5/-1
Offline Offline

Сообщений: 124


« Ответ #19 : 21 июня 2007, 14:42:24 »

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

PS: Очень бы хотелось во второй версии HC увидеть именно эту схему... Реализовав автоматическое обновление классификатора с этого сайта, можно сделать программу вообще практически иделаьной с точки зрения неопытного конечного пользователя.
Сообщить модератору   Записан
NothingAnother
Beta tester
*****

Репутация: +7/-2
Offline Offline

Сообщений: 434

Spoiler


« Ответ #20 : 21 июня 2007, 17:24:02 »

классификатор определяет, к какой категории относится траф, а политика - что делать с той или иной категорией трафика
Красиво. Но разве сейчас не так? Классификатор - это правило, политика - это гулька "Разрешить". Или же другая пара - список и "Разрешён". Поясни конкретнее - как именно ты видишь такую схему?
Сообщить модератору   Записан

Мы тоже не всего читали Шнитке!..
© В. Вишневский
Кирилл
Beta tester
*****

Репутация: +5/-1
Offline Offline

Сообщений: 124


« Ответ #21 : 21 июня 2007, 18:16:13 »

NothingAnother
Сейчас не так.
Политика зашита в саму программу, а отдельного классификатора нет вообще - вместо категорий вида "картинка", "флеш", "новости", "развлечения", "чаты", "реклама" указываются "голые" URL.
В результате при желании изменить только политику приходится тасовать URL по спискам, нередко дублируя их в нескольких местах, изучать регулярные выражения, поля заголовков и т.п. вместо использования чужого вылизанного классификатора.
Сообщить модератору   Записан
NothingAnother
Beta tester
*****

Репутация: +7/-2
Offline Offline

Сообщений: 434

Spoiler


« Ответ #22 : 21 июня 2007, 20:25:58 »

Политика зашита в саму программу, а отдельного классификатора нет вообще - вместо категорий вида "картинка", "флеш", "новости", "развлечения", "чаты", "реклама" указываются "голые" URL
Вот теперь более понятно, о чём речь
Цитировать
при желании изменить только политику приходится тасовать URL по спискам, нередко дублируя их в нескольких местах, изучать регулярные выражения, поля заголовков и т.п. вместо использования чужого вылизанного классификатора
Для того, чтобы использовать нечто "чужое и вылизанное" оно не обязательно должно называться "классификатором" - в топике про "правила по умолчанию" уже звучали предложения по онлайн-обновлениям списков. А вот одновременное управление группами правил - пожалуй, заслуживает внимания...
P.S. см. ПМ
Сообщить модератору   Записан

Мы тоже не всего читали Шнитке!..
© В. Вишневский
cepera_ang
Beta tester
*****

Репутация: +9/-4
Offline Offline

Сообщений: 355


« Ответ #23 : 21 июня 2007, 22:57:54 »

В принципе идея не нова. Например в других прокси задаются в начале acl'ы, затем политики работающие с этими акламим.
Для примера:
acl images url_regex (.)*\.(jpg|jpeg|png|gif|bmp|swf|ico)
acl icq port 5190
acl users vasya,masha
....
http_access images allow masha
http_access images deny all
http_access icq deny masha
...
Это из сквида, аналогично в 3proxy.
То есть есть несколько видов acl определяющих объект над которым проводится действие - это пользователь, порты, ip-адреса, URL, заголовки и т.д. И есть список политик (действий) для данных acl, например можно просто запретить доступ, разрешить, передать в сторонюю программу на обработку и т.д. Весьма удобный подход (хотя сначала кажется перегруженным, но это дело привычки), а если сделать легкий графический интерфейс - то станет совсем хорошо. Если выбран определенный тип acl (например url_regex) тогда можно ввести строку регэкспа, если порт - тогда номер ит.д. А в политиках - проверять если политика для URL - значит показываются только acl url_regex и действия deny|allow...
Сообщить модератору   Записан
Кирилл
Beta tester
*****

Репутация: +5/-1
Offline Offline

Сообщений: 124


« Ответ #24 : 22 июня 2007, 07:24:11 »

NothingAnother
Цитировать
Для того, чтобы использовать нечто "чужое и вылизанное" оно не обязательно должно называться "классификатором" - в топике про "правила по умолчанию" уже звучали предложения по онлайн-обновлениям списков.
Скачивая чужие нынешние списки - ты скачиваешь и чужую политику фильтрации!
И потом вынужден работать ручками, например, в том случае, когда тебе надо НЕ блокировать флеш или развлекательные сайты.
А скачав обновленный классификатор, ты улучшаешь распознавание трафика, а свои предпочтения по фильтрации - не трогаешь.
Сообщить модератору   Записан
NothingAnother
Beta tester
*****

Репутация: +7/-2
Offline Offline

Сообщений: 434

Spoiler


« Ответ #25 : 22 июня 2007, 08:46:01 »

Скачивая чужие нынешние списки - ты скачиваешь и чужую политику фильтрации
Мдя, действительно... Непонимаю
Цитировать
А скачав обновленный классификатор, ты улучшаешь распознавание трафика, а свои предпочтения по фильтрации - не трогаешь
Что ж, присоединяюсь - такой подход выглядит весьма элегантно!.. Отлично! +1
P.S. см. ПМ
Сообщить модератору   Записан

Мы тоже не всего читали Шнитке!..
© В. Вишневский
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #26 : 22 июня 2007, 11:28:05 »

Давайте переименуем тему как-то так:
"Двусписочная система: классификатор трафика и политика действий".
Или предлагайте свои варианты...

А то "Редактирование настроек пользователем", ИМХО, не точно отражает суть предложения...
Сообщить модератору   Записан
Кирилл
Beta tester
*****

Репутация: +5/-1
Offline Offline

Сообщений: 124


« Ответ #27 : 22 июня 2007, 11:32:05 »

DenZZZ
Сам как раз хотел предложить Улыбка
Только политика лучше наверно не действий, а кеширования или фильтрации.

Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #28 : 22 июня 2007, 11:47:36 »

Только политика лучше наверно не действий, а кеширования или фильтрации.

Так, и того, и другого! Может, "политика загрузки"?
Сообщить модератору   Записан
Кирилл
Beta tester
*****

Репутация: +5/-1
Offline Offline

Сообщений: 124


« Ответ #29 : 22 июня 2007, 11:58:00 »

DenZZZ
Именно что фильтрации - настройки фильтруют трафик - что блокировать, что кешировать, что качать, что брать из кеша и т.п.
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #30 : 23 июня 2007, 20:56:57 »

Для примера:
acl images url_regex (.)*\.(jpg|jpeg|png|gif|bmp|swf|ico)
acl users vasya,masha
....
http_access images allow masha
http_access images deny all
А как при этом пользователю vasya запретить images но разрешить ему загружать ico?
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #31 : 23 июня 2007, 22:53:48 »

А как при этом пользователю vasya запретить images но разрешить ему загружать ico?

Так:

Цитировать
acl images url_regex \.(jpg|jpeg|png|gif|bmp|swf|ico)(\?|$)
acl icons url_regex \.ico(\?|$)
acl users vasya, masha
....
http_access images allow masha
http_access icons allow vasya
http_access images deny all

Т.е. в случае противоречащих действий приоритет будет иметь то, что выше по списку.
Сообщить модератору   Записан
Кирилл
Beta tester
*****

Репутация: +5/-1
Offline Offline

Сообщений: 124


« Ответ #32 : 01 сентября 2007, 11:58:38 »

А черный список по умолчанию уже стал разбиваться по категориям...
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #33 : 08 октября 2007, 23:44:17 »

3. Действие: одно из возможных действий ((Не) блокировать, (Не) загружать из сети, (Не) брать из кеша, (Не) обновлять и т.д.) Наличие двух вариантов каждого действия (с "не" и без) позволит уменьшитиь размер белого списка или вообще без него обойтись.
Была даже не додуманная до конца, но похожая на правильную мысль, что действий для замены списков Ч, З, Н, Т, Б (в части запрета четырех предыдущих) потребуется всего два:
(не, ?)брать-из-кэша
(не, ?)брать-из-сети.
Сообщить модератору   Записан
Дем
Постоялец
***

Репутация: +6/-3
Offline Offline

Сообщений: 167



« Ответ #34 : 18 октября 2007, 10:10:03 »

три - ещё
(не, ?)писать-в-кэш

А двухуровневую систему организовать можно так:
1) именованый список (имя=имя файла lst) из строк
(активно строка_поиска строка_исключения строка_замены)
не всегда все поля будут задействованы, но для унификации.
2) правила в виде
(активно имя_списка ...)

Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #35 : 18 октября 2007, 11:41:45 »

три - ещё
(не, ?)писать-в-кэш
Строго говоря, да - чтоб перекрыть все возможные варианты. Но если оценивать жизненность таких вариантов, то имеют ли практическую полезность:
 - не-брать-из-сети + писать-в-кэш
 - брать-из-кэша + брать-из-сети + не-писать-в-кэш?
Сообщить модератору   Записан
Дем
Постоялец
***

Репутация: +6/-3
Offline Offline

Сообщений: 167



« Ответ #36 : 18 октября 2007, 14:52:09 »

Ну не беря из сети писать в кеш не получится Улыбка
А вот когда оба "брать" - ещё и приоритет выставлять надо, оба варианта имеют смысл.
А вообще, не так их и много, можно в один дроплист все варианты загнать
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #37 : 23 декабря 2007, 13:27:39 »

Собственно, этот мой пост ближе к теме "Двусписочная модель". Но т.к. хочу акцентировать внимание на нем как на альтернативе прежде всего скриптам, пишу здесь. Если, что, перенесите, плиз, в другую тему.
Прилагаю Exel-файл, где в сыром виде набросал то, каким видится моему ИМХО организация работы с заголовками и вообще логической структуры в виде, более понятном пользователю.

* Структура.rar (38.02 Кб - загружено 32 раз.)
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #38 : 23 декабря 2007, 14:35:58 »

Прилагаю Exel-файл, где в сыром виде набросал то, каким видится моему ИМХО организация работы с заголовками и вообще логической структуры в виде, более понятном пользователю.

Фактически ты предлагаешь "Односписочную модель", которая должна заменить все существующие списки и часть опций + добавить несколько новых.
Это немного не то, что предлагал Кирилл в "Двусписочной модели" - ты подошел к проблеме более радикально...

Возник ряд сомнений:
- Не уверен, что в твоей модели настройки будут "более понятны пользователю"! Реализация данной модели будет означать полное изменение логики настройки HC, причем не в сторону ее упрощения!
- Не понятен механизм обмена частями списков между пользователями. В двусписочной модели можно хотя бы "Политику" оставить свою, а обмениваться только "Классификатором". У тебя же и типы и конкретные правила RegExp - все в одном списке!
- Наличие макросов в твоей модели отнюдь не делает ее безопаснее и проще скриптов!


P.S. Последние посты будут перенесены в раздел "Новые предложения", т.к. требуют обсуждения и обоснования столь радикальных изменений...
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #39 : 23 декабря 2007, 21:43:26 »

- Не уверен, что в твоей модели настройки будут "более понятны пользователю"!
Исхожу из того, что пользователь волен оставить все как есть - названия и последовательность групп "Переадресация", "Только из кэша" и т.д. Вся логическая структура не обязательно должна постоянно маячить перед взором. В левую часть экрана, как и сейчас, выносятся наименования групп 1-го уровня. При нажатии на наименование группы, в правом (основном) окне раскрывается и правится исключительно эта группа. То есть можно точно так же оперировать привычными списками. Только колонок в них чуть добавится. Но, имхо, полезных колонок.
Цитировать
Реализация данной модели будет означать полное изменение логики настройки HC, причем не в сторону ее упрощения!
Не могу сказать, что полное изменение. Базовая логика в целом для пользователя останется той же. Только расширится. Но, имхо, это добавит некоторой гибкости. Говоря "упрощения", имею в виду прежде всего по сравнению со скриптами.
Цитировать
- Не понятен механизм обмена частями списков между пользователями. В двусписочной модели можно хотя бы "Политику" оставить свою, а обмениваться только "Классификатором". У тебя же и типы и конкретные правила RegExp - все в одном списке!
Механизм обмена может быть следующим. На экране возникают две логические структуры (дерева): слева своя, справа - скачанная. Из скачанной мышью перетаскиваем что нужно в свою.
Цитировать
- Наличие макросов в твоей модели отнюдь не делает ее безопаснее и проще скриптов!
Мы где-то уже обсуждали. Я имею в виду макросы, разворачивающиеся в выражения PCRE, не более того. То есть более краткую запись часто употребляемых фрагментов регулярных выражений. Например, популярный в Proxomitron'е $NEST можно выразить в PCRE чем-то типа $NEST(a,b) = a(((?!a|b).)++|(?-3))*b     А потом в "Правиле" писать $NEST(<script>, </script>) вместо соответствующей сложной конструкции.
« Последнее редактирование: 23 декабря 2007, 22:27:01 от Михаил » Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #40 : 25 декабря 2007, 14:33:48 »

Почитал описание языка регулярных выражений Проксомитрона. Существенную часть можно реализовать через PCRE с помощью макросов.
Например,
. = \.
* = .*?
" " = \s*
"=" = \s*=\s*
? = .
и др., а также популярные команды $AV, $AVQ, $NEST
Если кому-то не захочется переучиваться на PCRE, тот сможет пользоваться почти полным вариантом языка регулярных выражений Проксомитрона и некоторыми его командами.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #41 : 25 декабря 2007, 15:31:54 »

Цитировать
- Наличие макросов в твоей модели отнюдь не делает ее безопаснее и проще скриптов!
Мы где-то уже обсуждали. Я имею в виду макросы, разворачивающиеся в выражения PCRE, не более того.

Проксомитрон умеет работать и с файлами! И это никого не пугало, а даже наоборот активно использовалось, например, для записи в файл сайтов, которые не поддерживают GZIP, чтобы потом пускать их через сжимающие сервисы!
Почему в Проксомитроне никто не беспокоился о "безопасности"? Ты предлагаешь существенно ограничить функциональность?
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #42 : 25 декабря 2007, 19:20:21 »

DenZzz
Речь о PCRE и макросах идет в привязке к проверке условий. Для проверки условия никому не нужна запись в файл. Ты смешиваешь это с действиями, которые надо производить при выполнении условия.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #43 : 25 декабря 2007, 21:46:38 »

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

Ближе к сути! Твой вариант подразумевает возможность действия "запись в файл"?
Если нет - то это существенно ограничивает функциональность, если да - то он ничем не безопаснее скриптов!
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #44 : 25 декабря 2007, 22:30:51 »

DenZzz
1. То, что предложено - это концепт. Не было цели изложить все тонкости, которые есть и будут. Есть желание создать общий универсальный подход к работе с программой.

2. Что касается записи в файл. Если потребуется, это можно включить в список действий, он не исчерпывающий. Сейчас необходимости не вижу, т.к. не видел ни одного обсуждения, где бы обосновано была признана такая необходимость. Приведенный тобой пример создания специального файла вовсе не исчерпывает возможные варианты решения вопроса и, имхо, не является лучшим вариантом. Очень просто будет автоматически хранить эти данные (например, Content-Encoding) в файле-индексе (в метаданных). При этом отдельных файлов создавать пользователю не нужно. Надо обсуждать каждую такую необходимость. Имхо, без этого преждевременно говорить о "существенных ограничениях функциональности".

3. Есть разница между действительно необходимыми действиями, которые предоставляет программа, и широким кругом действий, куда войдут никогда не востребованные, но затрагивающие безопасность возможности. Нужно ли дать пользователю возможность с помощью НС писать в произвольный файл, запускать внешние программы из шелла, отслеживать системные события, работать с сокетами и пр.? Думаю, нет.
« Последнее редактирование: 25 декабря 2007, 23:20:41 от Михаил » Сообщить модератору   Записан
Кирилл
Beta tester
*****

Репутация: +5/-1
Offline Offline

Сообщений: 124


« Ответ #45 : 10 января 2008, 12:36:26 »

Самое простое решение - на скриптах делать только классификатор трафика.
Политика фильтрации - только на настройках самого HC.
Кстати, это хороший способ оставить практически весь нынешний фасад на месте.
Сообщить модератору   Записан
Страниц: 1 2 3 [Все]   Вверх
  Отправить эту тему    Печать  

 
Перейти в: