Автор |
Сообщение |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb
|
Unknown Mystic
Цитата: |
И что получилось? Работает? |
Работает, только на кой оно нужно, если сайты из-за этого глючат.. Вот он, [очередной] промежуточный вариант:
Код: |
Name = "Fix Nosey JavaScripts [ALX]"
Active = TRUE
Multi = TRUE
Bounds = "$NEST(<script,</script>)|$TYPE(js)"
Limit = 16000
Match = "(<script(\s[^>]+|)>$SET(\9=<!-- Fixed nosey JavaScript: -->)|$SET(\9=))\0"
"\1(."
" (referrer|plugins|colorDepth|pixelDepth|external|history.length|"
" (cookie(^$URL(http(s|)://$LST(CookieList))))"
" )"
" )"
"([^a-z]*)\2"
Replace = " \9\0\1.null\2" |
Цитата: |
Скобки - это просто группировка и подозреваю, что первую часть надо брать в скобки, что бы прокс сформировал строку, которую потом проверять будет (но это уже конечно мои домыслы) |
Домыслы домыслами, а $TST(\0=a) обязано работать (да и $TST(\0=) тоже вроде как ничему не противоречит). Но не работает..
|
_________________ Как правильно задавать вопросы |
|
К началу |
Профиль Сообщение |
 |
Unknown Mystic
Platinum Member

Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.
|
Ну и что же делать? Пусть фильтр так и не работает или все же лучше работающий, но на "ереси"
А $TST(\0=a) и работает, если значение \0 устанавливать не с помощью $SET.
Кстати ты говорил, что https+ - это из фильтра Лемона - значит действие + на пустую строку не баг, а фича
P.S. почему в ответить с циторованием можно отключить смайлики, а из простого добавления сообщения - нет?
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb
|
Цитата: |
Пусть фильтр так и не работает или все же лучше работающий |
Какой же он работающий: только несколько частных случаев отрабатывает.. Даже если ограничиться проверкой префикса [a-z]+., всё равно многое не попадёт[ся]. Хотя не исключено, что это самый перспективный путь: забить на всякие фреймы, массивы и функции и парсить только явные вызовы свойств у переменных. Но всё равно придётся добавить что-то вроде ([a-z]+.)+{1,*}.
Цитата: |
$TST(\0=a) и работает, если значение \0 устанавливать не с помощью $SET |
Точнее, если \0 не устанавливать с помощью $SET()
Вот пример:
Код: |
Match = "$SET(v=)"
"("
" $SET(0=A) (a)\0"
" |(0)\0 $SET(0=Z)"
" |(1)\0 $TST(\0=1)"
" |(2)\0 $SET(0=II) $TST(\0=2)"
" |(3)\0 $SET(0=III) $TST(\0=III)"
" |(4) $SET(0=IV)"
" | $SET(0=V) (5)\0 $TST((\0)=5)"
" |(6)\0 $SET(0=VI) $TST((\0)=VI)"
")$SET(v=\0)"
Replace = " [\0=$GET(v)] " |
Тестовая строка и результат:
Код: |
a0123456
[a=a] [0=Z] [1=1] 23 [IV=IV] [5=5] [6=VI] |
Выводы:
- $GET() работает как положено: выдаёт последнее значение, присвоенное хоть через $SET(), хоть через обычный match.
- Вызов \переменной в поле Replace выдаёт значение, установленное через $SET(), только если оно не было установлено обычным образом (до $SET() или после).
- $TST(\0=..) работает только если не было вызовов (с любыми значениями) $SET(0=..) и, соответственно, проверяет только переменные, установленные обычным образом.
- $TST((\0)=..) проверяет последнее установленное любым способом значение. Кроме того, в качестве проверяемого таким образом шаблона можно использовать выражение (как и в качестве шаблона сравнения).
- Прокс полон тайн и загадок.
|
_________________ Как правильно задавать вопросы |
|
К началу |
Профиль Сообщение |
 |
Unknown Mystic
Platinum Member

Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.
|
Есть еще такой вариант:
Код: |
[Patterns]
Name = "Set AllowCookies"
Active = TRUE
URL = "($LST(CookieList)$SET(AllowCookies=1)|$SET(AllowCookies=0))$LOG(RAllowCookies = $GET(AllowCookies))"
Match = "STOP()"
Name = "Fix Nosey JavaScripts [ALX] [SSL] new"
Active = TRUE
Multi = TRUE
Bounds = "$NEST(<script,</script>)|$TYPE(js)"
Limit = 16000
Match = "(<script(\s[^>]+|)>$SET(9=<!-- Fixed nosey JavaScript -->)|)\0"
"\1((.)\2(referrer|plugins|colorDepth|pixelDepth|external)|history.length|"
"([a-z]+.cookie$TST(AllowCookies=0)))"
"(*)\3"
Replace = " \0\1\2null\3\9"
|
Тут уже никакой ереси нет. Все по документации
Первый фильтр должен в самом начале списка стоять. Ну и за одно можно Make JS & Meta cookies session only поправить, чтоб переменную использовал, а не со списком сравнивал.
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
Unknown Mystic
Platinum Member

Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.
|
Фильтр [a-z]+ подставляет только для куков, для всего остального - как и раньше.
Это не пример, а издевательство какое-то  В нем разбираться до скончания веков можно...
Цитата: |
Вызов \переменной в поле Replace выдаёт значение, установленное через $SET(), только если оно не было установлено обычным образом (до $SET() или после). |
Match: $SET(\0=ccc)aaa\0
Replace: b \0
Тестовая строка: aaaaaa
Результат: b aaa
Match: aaa\0 &$SET(\0=ccc)
Replace: b \0
Тестовая строка: aaaaaa
Результат: b ccc
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb
|
Unknown Mystic
Ты там другие фильтры не хочешь поковырять? А то с этими носатыми скриптами всё равно непонятно, что надо делать. Хоть целиком их убивай ;)
|
|
|
К началу |
Профиль Сообщение |
 |
Unknown Mystic
Platinum Member

Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.
|
Я всю эту неделю в отпуске был на даче. Как раз остальные фильтры распечатал и ковырял  Вот до прокса на работе доберусь, посмотрю как работает то, что наковырял и где-то во вторник-среду выложу. Сразу скажу - правильную обработку конца тега в границы я не добавлял - не вижу смысла. Работать будет медленнее а результат тот же. Вот если проблемы будут возникать - тогда поправим
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb
|
Unknown Mystic
Давай, посмотрим твои сочинения. (Представляю себе картину: сидит чел в шезлонге на берегу озера, потягивает квас из трубочки, а в руках у него легкомычленное чтиво: распечатки каких-то скобочек :)
Цитата: |
правильную обработку конца тега в границы я не добавлял - не вижу смысла |
Аналогично. Т.е. есть фильтры, где это определённо нужно (теги <img>, может быть <a>), но далеко не везде. Хотя насчёт "медленнее работать" сильно сомневаюсь, что будет заметно тормозить.
|
|
|
К началу |
Профиль Сообщение |
 |
Unknown Mystic
Platinum Member

Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.
|
Доделал... Я писал все с комментариями, так что получилось много... Лучше бы на мыло скинуть...
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb
|
Это что, полный подстрочник конфига? Всё равно, если там матерщины не много :), лучше сюда запостить. А если совсем влезать не будет -- мне в ПМ.
|
|
|
К началу |
Профиль Сообщение |
 |
Unknown Mystic
Platinum Member

Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.
|
В общем могу и сюда запостить конечно. Просто я все это делал в rtf'е и изменения в фильтрах полужирным выделял, чтоб разбираться было проще. Выделять все это тегами, чтоб сюда добавить что-то не хочется, да и каждый фильтр в код заключать - тоже упариться можно  Этож как я понимаю все равно не последний вариант фильтров. Часть изменений ты ведь оставишь, а часть уберешь.
А размер - около 22000 символов. Там же почти все включенные по умолчанию фильтры в 2-х экземплярах - старый и новый + коментарии, вопросы и разные бредовые и не очень идеи
А чем ящик webmaster [*] proxomitron.ru не подходит (кстати [*] - надо полагать @)? Или это только RoKir'а?
А чтобы на "мне в ПМ" зайти, зарегистрироваться надо...
Коротче говоря http://www.webfile.ru/344709
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
Unknown Mystic
Platinum Member

Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.
|
Уже ошибки...
Поправленный Counter Killer [ALX] new убивает нормальную картинку .../top.gif
Надо либо |.[a-z]+ вообще убрать, либо что-то этакое придумать...
Например заменить ([^a-z]*|) на [^a-z]* и отдельно добавить обработку значений, для которых нужно было пустое значение. Если не ошибаюсь, это только *count.pl
И еще $AV(* может надо заменить на что-то вроде $AV(*(/|.) или $AV(*[^a-z0-9]
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
Unknown Mystic
Platinum Member

Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.
|
В файле AdKeys-RE.txt:
1.
ad([sv]|banner|click|fu|ver|name|x|log|)[^a-z0-9]|
(double|ad|log_)click|
в обоих строках adclick.
2.
(*/|)\w_120x600[^./]++.swf
(*/|)\w это ведь тоже, что и просто \w. Все равно ведь пробелов в URL'е нет.
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
Unknown Mystic
Platinum Member

Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.
|
Adlist-RE.txt:
ad2.rambler.ru/
ad.adriver.ru/
ad.pravda.ru/
ad.mastermedia.ru/
ad.polus.com.ru/
www.ixbt.com/banners/
www.mport.ru/banner, если удовлетворяет www.mport.ru/banner(s|)/
Поглощаются идущими ранее выражениями:
( ad(s(erver|)|force|tegrity|c) [0-9]+
|counter
|sm[#0:99].sitemeter).
и
[^/]+\w[/.](ad(s|verts|log.pl)[0-9]+/| banner(s|)/|cookie.crumb|js_source|hitometer.js|index.cgi\?id=???)
соответственно.
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb
|
Unknown Mystic:
Цитата: |
А чтобы на "мне в ПМ" зайти, зарегистрироваться надо... |
Ну да, понимаю, большое дело. Это вам не конфиги вручную парсить..
В общем, забрал; посмотрю и выложу.
AdKeys вызывается из таких мест, где и пробелы бывают ;)
В общем, он сыроватый ещё: что-то осталось от оригинального файла, что-то наспех добавилось. Надо посмотреть.
|
Последний раз редактировалось: chAlx (Чт, Июн 09 2005 18:30), всего редактировалось 1 раз |
|
К началу |
Профиль Сообщение |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb
|
Насчёт ad. в AdList сомневаюсь: у меня их куча набралась, но всё недосуг посмотреть, почему они не обрезаются общей проверкой (которая со скобками). Т.е. оно правильно, что надо их выделить, но вроде как текущий вариант делает это криво, поэтому просто почистить список нельзя. Проверь, неужто у тебя работает?
|
_________________ Как правильно задавать вопросы |
|
К началу |
Профиль Сообщение |
 |
Unknown Mystic
Platinum Member

Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.
|
Туплю. Сам же добавлял ad.playground.ru/ в AdList по твоему совету...
А проблема в том, что когда вы вносили изменения, потерли нужное ИЛИ (в старом проксе оно было):
(ad(s(erver|)|force|tegrity|c |)[0-9]+
|counter
|sm[#0:99].sitemeter).
Цитата: |
AdKeys вызывается из таких мест, где и пробелы бывают ;) |
Это из каких же интересно?  Он везде идет в значении какого-то свойства тега src=$AV($LST(AdKeys)*) и т.п. Не думаю, что там могут быть пробелы. А в остальных местах вообще *$LST(AdKeys)*, что в общем-то само по себе не есть хорошо...
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
Unknown Mystic
Platinum Member

Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.
|
Вот извращенцы... Решил проверить нормально ли выражение с ad блокируются. Зашел на http://www.pravda.ru/, а у них один скрипт внутри комментария находится и в результате, когда его блочит Kill JavaScript Banners {^sites} остается --> из-за того, что сам фильтр добавляет, получается что-то вроде:
<!-- <!-- JS Banner blocked -->
<script language="ShonenScript">
...
</script> -->
Аналогично с Fix Nosey JavaScripts [ALX].
Может не добавлять эти комментарии или заменить например на
<match filter="Kill JavaScript Banners {^sites}"> и
<match filter="Fix Nosey JavaScripts [ALX]"> соответственно.
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
chAlx
Moderator

Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb
|
Блин, ну и засада тут у меня.. Хз когда смогу подробно разобраться.
Блиц-обзор показал следующее:
- Откуда и зачем взялось кривое использование ad. -- неизвестно.
- --> добавляется часто из-за неполной проверки/фильтрации счётчиков. Убрать-то их можно, но это не значит, что не надо исправлять фильтры.
Пять опечаток в трёх строчках: теперь все поверят, что я был в запарке ;)
|
Последний раз редактировалось: chAlx (Вс, Июн 12 2005 17:51), всего редактировалось 3 раз(а) |
|
К началу |
Профиль Сообщение |
 |
Unknown Mystic
Platinum Member

Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.
|
Цитата: |
Блин, ну и засада тут у меня.. Хз когда смогу подробно разобраться. |
Когда сможешь, тогда и хорошо  Никто не торопит.
Цитата: |
* --> добавляется часто из-за неполной проверки/фильтрации счётчиков. Убрать-то их можно, но то не значит, что не надо сиправлять фильтры. |
То ли я не ясно выразился, толи тебя не правильно понял... Вообще-то я и предлагал править фильтры. Комментарии убирать (или заменять) из раздела replace самих фильтров, а не с веб страниц.
Если где-то что-то не правильно обрабатывается - я могу попробовать поправить, если у тебя нет времени. У меня оно пока вроде как есть  Просто сам я хожу по довольно небольшому числу веб страниц и потому врядли накопаю что-то новое, хотя кто знает...
|
|
|
К началу |
Профиль Сообщение ICQ |
 |
|