Форумы Форум www.proxomitron.ru
Все о программе Proxomitron
Главная  • FAQ для форума  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Личные сообщения  •  Вход
 Unknown Mystic тестит Prox-RE
 Сайт -> Форумы » Помогите убрать баннер...
Следующая тема
Предыдущая тема

Новая тема  Ответить
Автор Сообщение
chAlx
Moderator
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb

СообщениеДобавлено: Вт, Май 24 2005 12:19 Цитировать |  |  | 

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
Platinum Member


Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.

СообщениеДобавлено: Вт, Май 24 2005 12:43 Цитировать |  |  | 

Ну и что же делать? Пусть фильтр так и не работает или все же лучше работающий, но на "ереси" Smile

А $TST(\0=a) и работает, если значение \0 устанавливать не с помощью $SET.

Кстати ты говорил, что https+ - это из фильтра Лемона - значит действие + на пустую строку не баг, а фича Smile

P.S. почему в ответить с циторованием можно отключить смайлики, а из простого добавления сообщения - нет? Sad
К началу Профиль Сообщение ICQ
chAlx
Moderator
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb

СообщениеДобавлено: Вт, Май 24 2005 16:13 Цитировать |  |  | 

Цитата:
Пусть фильтр так и не работает или все же лучше работающий

Какой же он работающий: только несколько частных случаев отрабатывает.. Даже если ограничиться проверкой префикса [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
Platinum Member


Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.

СообщениеДобавлено: Вт, Май 24 2005 16:27 Цитировать |  |  | 

Есть еще такой вариант:
Код:
[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"

Тут уже никакой ереси нет. Все по документации Smile
Первый фильтр должен в самом начале списка стоять. Ну и за одно можно Make JS & Meta cookies session only поправить, чтоб переменную использовал, а не со списком сравнивал.
К началу Профиль Сообщение ICQ
Unknown Mystic
Platinum Member
Platinum Member


Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.

СообщениеДобавлено: Вт, Май 24 2005 16:44 Цитировать |  |  | 

Фильтр [a-z]+ подставляет только для куков, для всего остального - как и раньше.

Это не пример, а издевательство какое-то Smile В нем разбираться до скончания веков можно...

Цитата:
Вызов \переменной в поле 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
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb

СообщениеДобавлено: Пн, Май 30 2005 16:40 Цитировать |  |  | 

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


Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.

СообщениеДобавлено: Сб, Июн 04 2005 18:10 Цитировать |  |  | 

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


Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb

СообщениеДобавлено: Вс, Июн 05 2005 11:40 Цитировать |  |  | 

Unknown Mystic
Давай, посмотрим твои сочинения. (Представляю себе картину: сидит чел в шезлонге на берегу озера, потягивает квас из трубочки, а в руках у него легкомычленное чтиво: распечатки каких-то скобочек :)

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

Аналогично. Т.е. есть фильтры, где это определённо нужно (теги <img>, может быть <a>), но далеко не везде. Хотя насчёт "медленнее работать" сильно сомневаюсь, что будет заметно тормозить.
К началу Профиль Сообщение
Unknown Mystic
Platinum Member
Platinum Member


Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.

СообщениеДобавлено: Ср, Июн 08 2005 18:40 Цитировать |  |  | 

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


Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb

СообщениеДобавлено: Чт, Июн 09 2005 10:01 Цитировать |  |  | 

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


Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.

СообщениеДобавлено: Чт, Июн 09 2005 11:24 Цитировать |  |  | 

В общем могу и сюда запостить конечно. Просто я все это делал в rtf'е и изменения в фильтрах полужирным выделял, чтоб разбираться было проще. Выделять все это тегами, чтоб сюда добавить что-то не хочется, да и каждый фильтр в код заключать - тоже упариться можно Smile Этож как я понимаю все равно не последний вариант фильтров. Часть изменений ты ведь оставишь, а часть уберешь.

А размер - около 22000 символов. Там же почти все включенные по умолчанию фильтры в 2-х экземплярах - старый и новый + коментарии, вопросы и разные бредовые и не очень идеи Smile

А чем ящик webmaster [*] proxomitron.ru не подходит (кстати [*] - надо полагать @)? Или это только RoKir'а?

А чтобы на "мне в ПМ" зайти, зарегистрироваться надо...

Коротче говоря http://www.webfile.ru/344709
К началу Профиль Сообщение ICQ
Unknown Mystic
Platinum Member
Platinum Member


Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.

СообщениеДобавлено: Чт, Июн 09 2005 12:26 Цитировать |  |  | 

Уже ошибки... Sad

Поправленный 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
Platinum Member


Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.

СообщениеДобавлено: Чт, Июн 09 2005 17:54 Цитировать |  |  | 

В файле 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
Platinum Member


Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.

СообщениеДобавлено: Чт, Июн 09 2005 18:21 Цитировать |  |  | 

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
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb

СообщениеДобавлено: Чт, Июн 09 2005 18:25 Цитировать |  |  | 

Unknown Mystic:
Цитата:
А чтобы на "мне в ПМ" зайти, зарегистрироваться надо...

Ну да, понимаю, большое дело. Это вам не конфиги вручную парсить..

В общем, забрал; посмотрю и выложу.

AdKeys вызывается из таких мест, где и пробелы бывают ;)
В общем, он сыроватый ещё: что-то осталось от оригинального файла, что-то наспех добавилось. Надо посмотреть.


Последний раз редактировалось: chAlx (Чт, Июн 09 2005 18:30), всего редактировалось 1 раз
К началу Профиль Сообщение
chAlx
Moderator
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb

СообщениеДобавлено: Чт, Июн 09 2005 18:29 Цитировать |  |  | 

Насчёт ad. в AdList сомневаюсь: у меня их куча набралась, но всё недосуг посмотреть, почему они не обрезаются общей проверкой (которая со скобками). Т.е. оно правильно, что надо их выделить, но вроде как текущий вариант делает это криво, поэтому просто почистить список нельзя. Проверь, неужто у тебя работает?

_________________
Как правильно задавать вопросы
К началу Профиль Сообщение
Unknown Mystic
Platinum Member
Platinum Member


Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.

СообщениеДобавлено: Пт, Июн 10 2005 12:14 Цитировать |  |  | 

Цитата:
Насчёт ad.

Туплю. Сам же добавлял ad.playground.ru/ в AdList по твоему совету...

А проблема в том, что когда вы вносили изменения, потерли нужное ИЛИ (в старом проксе оно было):
(ad(s(erver|)|force|tegrity|c|)[0-9]+
|counter
|sm[#0:99].sitemeter).

Цитата:
AdKeys вызывается из таких мест, где и пробелы бывают ;)

Это из каких же интересно? Smile Он везде идет в значении какого-то свойства тега src=$AV($LST(AdKeys)*) и т.п. Не думаю, что там могут быть пробелы. А в остальных местах вообще *$LST(AdKeys)*, что в общем-то само по себе не есть хорошо...
К началу Профиль Сообщение ICQ
Unknown Mystic
Platinum Member
Platinum Member


Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.

СообщениеДобавлено: Пт, Июн 10 2005 12:51 Цитировать |  |  | 

Вот извращенцы... Решил проверить нормально ли выражение с 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
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb

СообщениеДобавлено: Пт, Июн 10 2005 18:46 Цитировать |  |  | 

Блин, ну и засада тут у меня.. Хз когда смогу подробно разобраться.

Блиц-обзор показал следующее:

  • Откуда и зачем взялось кривое использование ad. -- неизвестно.
  • --> добавляется часто из-за неполной проверки/фильтрации счётчиков. Убрать-то их можно, но это не значит, что не надо исправлять фильтры.

Пять опечаток в трёх строчках: теперь все поверят, что я был в запарке ;)


Последний раз редактировалось: chAlx (Вс, Июн 12 2005 17:51), всего редактировалось 3 раз(а)
К началу Профиль Сообщение
Unknown Mystic
Platinum Member
Platinum Member


Зарегистрирован: 26.09.2005
Сообщения: 471
Откуда: г. Мытищи, Московская обл.

СообщениеДобавлено: Пт, Июн 10 2005 23:16 Цитировать |  |  | 

Цитата:
Блин, ну и засада тут у меня.. Хз когда смогу подробно разобраться.


Когда сможешь, тогда и хорошо Smile Никто не торопит.

Цитата:
* --> добавляется часто из-за неполной проверки/фильтрации счётчиков. Убрать-то их можно, но то не значит, что не надо сиправлять фильтры.


То ли я не ясно выразился, толи тебя не правильно понял... Вообще-то я и предлагал править фильтры. Комментарии убирать (или заменять) из раздела replace самих фильтров, а не с веб страниц.

Если где-то что-то не правильно обрабатывается - я могу попробовать поправить, если у тебя нет времени. У меня оно пока вроде как есть Smile Просто сам я хожу по довольно небольшому числу веб страниц и потому врядли накопаю что-то новое, хотя кто знает... Smile
К началу Профиль Сообщение ICQ
Показать сообщения:      
 
Новая тема  Ответить

 Перейти:   




Следующая тема
Предыдущая тема
Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


P o w e r e d b y p h p B B © p h p B B G r o u p :: T h e m e b a s e d o n FI T h e m e :: Часовой пояс: GMT + 3