Автор Сообщение
chAlx
СообщениеДобавлено: Чт, Май 07 2009 21:14   Заголовок сообщения:

Подправил текст блоклиста в первом посте, чтобы плагины более не проверялись (т.е. скрипт сможет с ними взаимодействовать). А то на многих сайтах работают кривые проверки, из-за которых не запускается внедрённый Flash-контент.
Partyzan
СообщениеДобавлено: Чт, Янв 11 2007 20:22   Заголовок сообщения:

А зачем делать блок-лист ради нескольких строчек текста, не лучше ли их в сам фильтр вписать? Тогда по прошествии некоторого времени не придется вспоминать, какой лист к каком фильтру относится, да и каталог будет посвободнее.
Unknown Mystic
СообщениеДобавлено: Чт, Ноя 09 2006 10:51   Заголовок сообщения:

chAlx ,
Это бесспорно, но если продолжать использовать блок-лист так же как и раньше, выигрыш на мой взгляд не велик... CookieList-RE это всего 5 строк или около того. Ну плюс то, что это отдельный блок лист накладывается, но все равно не особо много пользы. А вот отдельный фильтр кроме еще большего исключения проверок, еще и не мало упростит сами фильтры, использующие этот блок-лист. Более того, тут действительно если пользователь разбирается в проксе - он перепишет фильтр, если же нет, то и не очем беспокоиться - старые (отдельно скаченые) фильтры будут работать как и раньше. В случае же сблок листом, всем пользователям придется вручную править CookieList (разумеется если он ими дополнялся)...

Не более, чем за Skip starting text [SSL] ...
chAlx
СообщениеДобавлено: Ср, Ноя 08 2006 21:06   Заголовок сообщения:

Unknown Mystic:

Цитата:
то что предложил я полностью исключает перепроверку

И включает переделку всех имеющихся фильтров, проверяющих этот блоклист, т.е. несовместимость. Если кто-то понаделал своих фильтров -- они просто перестанут нормально работать с таким блоклистом.

Я не спорю, что отдельный фильтр лучше, но за ним придётся следить, чтобы не пропал и не отключился -- большое дело :)
Unknown Mystic
СообщениеДобавлено: Ср, Ноя 08 2006 19:24   Заголовок сообщения:

chAlx ,
А зачем отрицательный результат, если все равно глобальную переменную проверять?
В твоем случае каждый раз шла перепроверка пользовательских URL'ов, а то что предложил я полностью исключает перепроверку.

А вот насчет параллельных фильтров... В пределах одного соединения такое разве бывает? Что-то сомнительно. Так что помоему $LOCK() не нужен.

И все же отдельный фильтр красивше - нет лишних проверок по блок-листу, пусть даже и таких простых...
chAlx
СообщениеДобавлено: Ср, Ноя 08 2006 17:25   Заголовок сообщения:

Unknown Mystic:

Нечего придираться -- это же концепт! ;)

Все эти "тоже в начало" хороши только для положительных проверок, если блоклист должен "вернуть" отрицательный результат -- придётся прогнать его до конца. Но это и не важно: главное, что основной блоклист не перепроверяется. Этот-то кусок ты и выкинул ;)

А установка перед юзерским списком единички -- это неплохо придумано. Только надо, наверно, туда $LOCK() втыкать, чтобы не глючили параллельные фильтры. Так можно и вообще в самом блокфайле CookieList-RE всё сделать.
Unknown Mystic
СообщениеДобавлено: Ср, Ноя 08 2006 15:10   Заголовок сообщения:

chAlx писал(а):
Ну мы-то знаем толк в извращениях ;)
Вот одно: работает туго, зато можно вообще вызовы не менять:

Вот уж что верно, то верно... Конечно до единных фильтров (от LexxIcon кажется) еще далеко, но... :))

А пользовательские URL'ы проверять? Каждую строчку на $SET(AllowCookies=1) заканчивать?

Кроме того AllowCookies=0 тоже надо в начало. Если уж были запрещены, то и нечего повторно проверять...

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

Коротче если уж это и оставлять, хоть и выглядит жутко, то примерно так:
Код:

# Debug logging:
$LOG(R$DTM(c):Checking cookies..) #This should never match#

# Russian Edition system URLs:

$TST(AllowCookies=1)$LOG(R$DTM(c):Cookies already allowed)
$TST(AllowCookies=0)$LOG(R$DTM(c):Cookies was already denied)
$LST(CookieList-RE)$SET(AllowCookies=1)$LOG(R$DTM(c):Cookies allowed)
$SET(AllowCookies=1) #This should never match#

# User added URLs (add sites here):





# Russian Edition system tail:
$SET(AllowCookies=0)$LOG(R$DTM(c):Cookies denied)


# Do not add sites here, use "User added URLs" section


Ну и в фильтрах (во всяком случае тех - новых) соответственно:
($URL(http(s|)://$LST(CookieList))|$SET(5=1)) заменить на $URL(http(s|)://$LST(CookieList))
А в CookieList-RE - $TST((\5)=1)) заменить на $TST(AllowCookies=0)

Правда и тут при совпадении пользовательского URL'а соответствующей надписи в логе не будет...

Хотя даже так куча лишних проверок... Пока отдельный фильтр мне нравится больше...
chAlx
СообщениеДобавлено: Вт, Ноя 07 2006 22:14   Заголовок сообщения:

Unknown Mystic:

Ну мы-то знаем толк в извращениях ;)

Вот одно: работает туго, зато можно вообще вызовы не менять:

Код:

# Debug logging:
$LOG(R$DTM(c):Checking cookies..) #This should never match#

# Russian Edition system URLs:

$TST(AllowCookies=1)$LOG(R$DTM(c):Cookies already allowed)
(^$TST(AllowCookies=(?*)))$LST(CookieList-RE)$SET(AllowCookies=1)$LOG(R$DTM(c):Cookies allowed)


# User added URLs (add sites here):





# Russian Edition system tail:
($TST(AllowCookies=0)$LOG(R$DTM(c):Cookies was already denied)|(^$TST(AllowCookies=(?*)))$SET(AllowCookies=0)$LOG(R$DTM(c):Cookies denied)) #This should never match#


# Do not add sites here, use "User added URLs" section
Unknown Mystic
СообщениеДобавлено: Вт, Ноя 07 2006 19:22   Заголовок сообщения:

Согласен, условие и правда было у фильтра странное. Кстати если бы поменять части ИЛИ местами, то получилось бы самое то ;) Ну разве что лимит для JS малость великоват :))

Установку глобальной переменной в блок-лист переносить... Можно конечно $SET()<что-то не совпадающее>. Но только тогда проверка будет много раз выполняться... Я для того ее отдельным фильтром и выделял.
chAlx
СообщениеДобавлено: Вт, Ноя 07 2006 18:17   Заголовок сообщения:

Unknown Mystic:

А вот и нет ;) Моя пара не завязана друг на друга и на другие фильтры: хочешь -- выключай, хочешь -- только один из них оставь, все остальные выключи.

"Смысла делить" было, т.к. фильтры вместе не работают. Ну разве что первый залезет в JS, который сам вставляет скрипт в HTML, и вычистит его вместо второго -- ну так и правильнее будет. А делалось это как раз ради JS: на них предыдущая версия плохо работала (если вообще).
Хотя принципиальных причин не вставить $TYPE(htm) вроде как нету -- может, и будет как-нибудь..

К глобальной переменной я в целом отношусь положительно: нормальная такая оптимизация тупой проверки. Но отдельным фильтром ой как не хочется.. Попробую на досуге засунуть это дело в блоклист, чтобы нельзя было отключить. У нас как раз есть CookieList, из которого вызывается CookieList-RE: отличное место для выставления глобальной переменной.
Unknown Mystic
СообщениеДобавлено: Вт, Ноя 07 2006 15:00   Заголовок сообщения:

Ну теперь точно надо добавить ;) :

Код:
Name = "Set AllowCookies [SSL]"
Active = TRUE
URL = "($LST(CookieList)$SET(AllowCookies=1)|$SET(AllowCookies=0))$LOG(RAllowCookies = $GET(AllowCookies))"
Limit = 1
Match = "$STOP()"


И соответственно в твоих двух:
($URL(http(s|)://$LST(CookieList))|$SET(5=1)) - выкинуть
А в блоклисте $TST((\5)=1)) заменить на $TST(AllowCookies=0)

Может в первом фильтре тоже проверку типа содержимого добавить? Иначе вроде как и смысла не было делить...
chAlx
СообщениеДобавлено: Сб, Ноя 04 2006 19:16   Заголовок сообщения: Fix Nosey JavaScripts

Переделал фильтр Fix Nosey JavaScripts [ALX] в два:

Код:
Name = "Fix Nosey JavaScripts {html} [ALX]"
Active = TRUE
Multi = TRUE
Bounds = "$NEST(<script,</script>)"
Limit = 16000
Match = "($URL(http(s|)://$LST(CookieList))|$SET(5=1))"
        "(<script*>)\0"
        "\1"
        "$LST(NoseyJS-RE)"
        "([^a-z0-9_-] *)\9"
Replace = "<ins by=Fix_Nosey_JavaScript></ins>\0\1\2toString(9)\9"

Name = "Fix Nosey JavaScripts {js} [ALX]"
Active = TRUE
URL = "$TYPE(js)"
Limit = 64
Match = "($URL(http(s|)://$LST(CookieList))|$SET(5=1))"
        "$LST(NoseyJS-RE)"
        "([^a-z0-9_-])\9"
Replace = "\2toString(9)\9"


NoseyJS-RE.txt:
Код:
#
# Proxomitron nosey JavaScript keywords list - Russian Edition (NOADDURL)
# Used by "Fix Nosey JavaScripts [ALX]"
#

(.)\2referrer
(.)\2colorDepth
(.)\2pixelDepth
(.)\2external
(.)\2cookie$TST((\5)=1))
([^a-z0-9_-])\2(history(^(^.length)))
# Enable to deny manipulation with plugins:
##(.)\2plugins
##~.plugins\["Shockwave Flash"\]

P o w e r e d b y p h p B B© p h p B B G r o u p