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

Новая тема  Ответить
Автор Сообщение
Bonart
Filter Developer
Filter Developer


Зарегистрирован: 29.11.2004
Сообщения: 78
Откуда: Самара

СообщениеДобавлено: Чт, Апр 07 2005 12:42 Цитировать |  |  | 

2 chAlx
Похоже получилось. Всем тестить.
Цитата:

[HTTP headers]
In = TRUE
Out = FALSE
Key = "Location: WW Redirect (in) [BON]"
URL = "www.webwarper.net/ww/"
Match = "(^http://www.webwarper.net/ww/*)&($RESP(302*))&(http://(^$LST(NonWarped)))&(http://\2)&(http://([^\?\&]+)\1)"
Replace = "http://\2\&WWRedirect=1"

In = FALSE
Out = TRUE
Key = "URL: WebWarper (out) [BON]"
URL = "(^www.webwarper.net/ww/*)&((\1\&WWRedirect)|((^$LST(NonWarped))&($LST(Warped))))"
Match = "(http://(\1\&WWRedirect) $SET(2=http://) | (*\1.ru(^?) | (*\1))$SET(2=http://www.webwarper.net/ww/~fz/))"
Replace = "$RDIR(\2\1)"

Недостаток по сравнению с решением через блок листы - все несжимаемые запросы на сайты из списка warped посылаются дважды.
Достоинство - не замусоривается список NonWarped.
К началу Профиль Сообщение
vital mogilny
Advanced Member
Advanced Member


Зарегистрирован: 24.03.2005
Сообщения: 89

СообщениеДобавлено: Пт, Апр 08 2005 03:34 Цитировать |  |  | 

Да, фильтр работает. Слава Бонарту! Хвала chAlx'у!

Меня же скорее смущают не двойные запросы, которых я, честно говоря, не заметил, а суффикс от которого не избавиться.
Еще, по неясным для меня причинам, таким образом не удается авторизоваться на бигфуте.
Так что, лично меня вполне устраивает вариант с NonWarped.
Если кому-то хочется, то для WWRedirect можно создать третий список - трэш-лист, так сказать, добавить его в соответствующие фильтры и периодически его чистить.
К началу Профиль Сообщение
taimael
Junior Member
Junior Member


Зарегистрирован: 22.01.2005
Сообщения: 34

СообщениеДобавлено: Пт, Апр 08 2005 07:26 Цитировать |  |  | 

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

2mogilny: лишний список для мусора проблемой не будет, главное чтоб все в кучу в NonWarped не смешивалось
К началу Профиль Сообщение
Bonart
Filter Developer
Filter Developer


Зарегистрирован: 29.11.2004
Сообщения: 78
Откуда: Самара

СообщениеДобавлено: Пт, Апр 08 2005 09:08 Цитировать |  |  | 

2 taimael
Тогда лови Smile
Цитата:

[HTTP headers]
In = TRUE
Out = FALSE
Key = "Location: WW Redirect (in) [BON]"
URL = "www.webwarper.net/ww/"
Match = "(^http://www.webwarper.net/ww/*)&($RESP(302*))&(http://(^$LST(NonWarped)))&(http://\2)&(http://([^\?\&]+)\1)&($ADDLST(NonWarped,$WESC(\1)))"
Replace = "http://\2\&WWRedirect=1"
К началу Профиль Сообщение
chAlx
Moderator
Moderator


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

СообщениеДобавлено: Пт, Апр 08 2005 17:06 Цитировать |  |  | 

А почему устанавливается &WWRedirect=1, а проверяется-вырезается только &WWRedirect?
К началу Профиль Сообщение
Bonart
Filter Developer
Filter Developer


Зарегистрирован: 29.11.2004
Сообщения: 78
Откуда: Самара

СообщениеДобавлено: Пт, Апр 08 2005 17:26 Цитировать |  |  | 

2 chAlx
Все равно на самом деле Smile Отрезается хвост, начинающийся с &WWRedirect. =1 осталось от предыдущей тестовой версии без вырезания маркера.
К началу Профиль Сообщение
chAlx
Moderator
Moderator


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

СообщениеДобавлено: Пт, Апр 08 2005 17:34 Цитировать |  |  | 

Bonart:
А это проверяли:
Цитата:
[..]не дают нужного результата вызовы $IHDR() и $RESP() в исходящем фильтре.
?
Вдруг редирект получится отловить после закрытия соединения..
К началу Профиль Сообщение
Bonart
Filter Developer
Filter Developer


Зарегистрирован: 29.11.2004
Сообщения: 78
Откуда: Самара

СообщениеДобавлено: Пт, Апр 08 2005 20:22 Цитировать |  |  | 

Кажется, что глюки с авторизацией удалось побороть:
Цитата:

[HTTP headers]
In = TRUE
Out = FALSE
Key = "Location: WW Redirect (in) [BON]"
URL = "www.webwarper.net/ww/"
Match = "($RESP(302*)) & ((http://www.webwarper.net/ww/(~\3/|)*\2) $SET(1=) | (((^http://www.webwarper.net/ww/*) & (http://(^$LST(NonWarped))) & (http://\2))) $SET(1=&WWRedirect))"
Replace = "http://\2\1"

In = TRUE
Out = FALSE
Key = "Set-Cookie: Cookie UnWebWarper (in) [BON]"
URL = "*"
Match = "\1path=/ww/(~([^/])++/|)[^/]++/\2"
Replace = "\1path=/\2"

In = FALSE
Out = TRUE
Key = "URL: WebWarper (out) [BON]"
URL = "(^www.webwarper.net/ww/*)&((\1\&WWRedirect)|((^$LST(NonWarped))&($LST(Warped))))"
Match = "(http://(\1\&WWRedirect) $SET(2=http://) | (http://(*\1.ru(^?) | (*\1)))$SET(2=http://www.webwarper.net/ww/~fz/))"
Replace = "$RDIR(\2\1)"

Секрет авторизации в корректной работе с куками. Для ее обеспечения используется:
1) Скрытие от браузера всех запросов к WebWarper - это делают фильтры WebWarper, добавляя адрес WW к адресу из браузера, и WW Redirect, убирая адрес WebWarper из перенаправлений.
2) Исправление содержимого куков - достаточно убрать \ww\~fz\host из параметра path.
К началу Профиль Сообщение
vital mogilny
Advanced Member
Advanced Member


Зарегистрирован: 24.03.2005
Сообщения: 89

СообщениеДобавлено: Вт, Апр 12 2005 01:15 Цитировать |  |  | 

Как выяснилось, при переадресации теряется информация, посылаемая
Content-Type: application/x-www-form-urlencoded. Соответственно, каждый раз выдается новый запрос пароль/логин.
В случае со списком, цикл повторяется только единожды.
К началу Профиль Сообщение
Гость






СообщениеДобавлено: Вт, Апр 12 2005 06:12 Цитировать |  |  | 

2 Vital Mogilny
Ты хочешь сказать, что достаточно ввести в фильтр WebWarper проверку на это и все будет хорошо?
К началу
vital mogilny
Advanced Member
Advanced Member


Зарегистрирован: 24.03.2005
Сообщения: 89

СообщениеДобавлено: Пт, Апр 15 2005 00:31 Цитировать |  |  | 

Самое нелепое, что вся эта чехарда вокруг редиректа оказалась "поиском черной кошки". Все предельно просто - если переадресация происходит незаметно от браузера (т.е. через $RDIR), то "чистка" суффикса может быть произведена и комбинированным фильтром, и парой отдельных фильтров. Вообще, как угодно. Но если был явный редирект ($JUMP) - браузер получает команду REFRESH, и даже комбинированный фильтр будет зациклен.
Так что, список рулит.
К началу Профиль Сообщение
vital mogilny
Advanced Member
Advanced Member


Зарегистрирован: 24.03.2005
Сообщения: 89

СообщениеДобавлено: Пт, Апр 15 2005 02:51 Цитировать |  |  | 

Новая версия корректора куки, так сказать, 2в1.

Код:

[HTTP headers]
In = TRUE
Out = FALSE
Key = "Set-cookie: Correct (in) [warp]"
Match = "*\0(path=/)\1ww/~fz/(passport|)\2([^/]+)\3/*\4(;|)"
Replace = "\0\1\4; domain=\3"
К началу Профиль Сообщение
IlluSioN
Newbee
Newbee


Зарегистрирован: 08.05.2005
Сообщения: 3

СообщениеДобавлено: Вс, Май 08 2005 05:31 Цитировать |  |  | 

Просмотрев все 8 страниц совершенно запуталсяя какой набор фильтров лучьше использонать...? И действительно ли WebWarper ощутимо эконимит драгоценный трафик?
К началу Профиль Сообщение ICQ
Li2n
Newbee
Newbee


Зарегистрирован: 17.03.2005
Сообщения: 19

СообщениеДобавлено: Ср, Май 11 2005 23:32 Цитировать |  |  | 

Здравствуйте, мне то же интересно стоит ли игра свечь?
К началу Профиль Сообщение
chAlx
Moderator
Moderator


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

СообщениеДобавлено: Чт, Май 12 2005 09:01 Цитировать |  |  | 

Bonart, vital mogilny:
Действительно, люди, выложите каждый по полному набору своей рабочей версии комплекта (у вас ведь они немного разные?), а то тут без пол-литра не разберёшься, что брать, на что заменять..

_________________
Как правильно задавать вопросы
К началу Профиль Сообщение
Kloned[D]
Гость





СообщениеДобавлено: Чт, Май 12 2005 13:57 Цитировать |  |  | 

я пользуюсь уже почти две недели моей сборкой из кусков филтров выложенных в этом разделе форума. За все время работы лишь несколько раз приходилось делать Bypass. Собирал по принципу (1-8 стр.):
1. если фильтр отсутствует - подключаю;
2. если название фильтра совпадает с подключенным ранее, и его автор высказал намерение исправить или дополнить более раний фильтр с таким-же названием - заменяю;
3. если фильтр справляется с работй двух или более фильтров (по мнению автора) - заменяю те самые "два или более" одним;
4. если подключенный фильтр получил негативный или сомнительный отклик без опровержения - отключаю.

Сама сборка:
Код:
 
[HTTP headers]
In = TRUE
Out = FALSE
Key = "Location: WW Redirect (in) [BON]"
URL = "www.webwarper.net/ww/"
Match = "($RESP(302*)) & ((http://www.webwarper.net/ww/(~\3/|)*\2) $SET(1=) | (((^http://www.webwarper.net/ww/*) & (http://(^$LST(NonWarped))) & (http://\2))) $SET(1=&WWRedirect))"
Replace = "http://\2\1"

In = TRUE
Out = FALSE
Key = "Set-Cookie: Cookie UnWebWarper (in) [BON]"
URL = "*"
Match = "\1path=/ww/(~([^/])++/|)[^/]++/\2"
Replace = "\1path=/\2"

In = TRUE
Out = FALSE
Key = "Set-cookie: Correct (in) [warp]"
Match = "*\0(path=/)\1ww/~fz/(passport|)\2([^/]+)\3/*\4(;|)"
Replace = "\0\1\4; domain=\3"

In = FALSE
Out = TRUE
Key = "URL: WebWarper (out) [BON]"
URL = "(^www.webwarper.net/ww/*)&((\1\&WWRedirect)|((^$LST(NonWarped))&($LST(Warped))))"
Match = "(http://(\1\&WWRedirect) $SET(2=http://) | (http://(*\1.ru(^?) | (*\1)))$SET(2=http://www.webwarper.net/ww/~fz/))"
Replace = "$RDIR(\2\1)"

In = TRUE
Out = FALSE
Key = "Location: WW Redirect 302 (in) [warp]"
URL = "www.webwarper.net/ww/"
Match = "(\1http://www.webwarper.net/ww/~fz/\2(\3(\?|\&)\*\4|))&($RESP((302|301)*))"
Replace = "\1http://\2\3\4"

In = FALSE
Out = TRUE
Key = "URL: UnWebWarper (out) [warp]"
URL = "www.webwarper.net/ww/~fz/$LST(NonWarped)"
Match = "\1//www.webwarper.net/ww/~fz/\2(\3(\?|\&)\*\4|)"
Replace = "$RDIR(\1//\2\3\4)"

In = TRUE
Out = FALSE
Key = "URL: Warp it! (in) ? [warp]"
URL = "(^www.webwarper.net/ww/*)&(*\?\w)"
Match = "($RESP(200*))&(^$IHDR(Content-Encoding:(^(deflate|(^?)))))&(http://(^$LST(NonWarped)))&(http://(^$LST(Warped)))&(http://\1)&($ADDLST(Warped,\h))"
Replace = "$RDIR(http://www.webwarper.net/ww/~fz/\1\&\*)"

In = TRUE
Out = FALSE
Key = "URL: Warp it! (in) [warp]"
URL = "(^www.webwarper.net/ww/*)&(^(*\?))"
Match = "($RESP(200*))&(^$IHDR(Content-Encoding:(^(deflate|(^?)))))&(http://(^$LST(NonWarped)))&(http://(^$LST(Warped)))&(http://\1)&($ADDLST(Warped,\h))"
Replace = "$RDIR(http://www.webwarper.net/ww/~fz/\1\?\*)"

In = FALSE
Out = TRUE
Key = "URL: WebWarper ? (out) [warp]"
URL = "(^www.webwarper.net/ww/*)&(^$LST(NonWarped))&($LST(Warped))&(*\?\w)"
Match = "(http://(*\1.ru(^?)|*\1))"
Replace = "$RDIR(http://www.webwarper.net/ww/~fz/\1\&\*)"


[Patterns]
Name = "Cannot view WW [BON]"
Active = TRUE
URL = "www.webwarper.net/ww"
Bounds = "<!--\s~~~~WWMESSAGE -91*-->"
Limit = 512
Match = "(*Web\ssite:\s\1\scannot*)&($URL(http://www.webwarper.net/ww/(~\3/|)([^/]+)\2/))&($ADDLST(NonWarped,\2/))"

Name = "Links UnWebWarper [BON]"
Active = TRUE
Multi = TRUE
URL = "www.webwarper.net/ww/"
Bounds = "<\w\s*>"
Limit = 512
Match = "(\#www.webwarper.net/ww/(~?++/|))+\#"
Replace = "\@"

Name = "Script UnWebWarper [BON]"
Active = TRUE
URL = "www.webwarper.net/ww/"
Bounds = "<script\s*</script>"
Limit = 128
Match = "*(~clientscript|WWServ)*"
Replace = "<script language="WWScript"></script>"
К началу
Гость






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

Парни вы сделали великое дело!
Собрал я в кучу фильтры от [BON]-работает... Действительно заметно жмёт трафик, но и скорость упала заметно. Я использую с другими стандартными фильтрами прокса это правельно?
К началу
vital mogilny
Advanced Member
Advanced Member


Зарегистрирован: 24.03.2005
Сообщения: 89

СообщениеДобавлено: Пт, Май 13 2005 02:48 Цитировать |  |  | 

Первым делом, сделаю "реверанс" в сторону Bonart'а, который, собственно, все это и придумал. Я только модифицировал некоторые фильтры, связанные с чисткой суффиксов.
Далее излагаются некоторые рассуждения относительно работы с WW:
Прежде всего конфигурацию, включающая в себя соответствующие фильтры, лучше сделать отдельной. Причин несколько. Самая банальная - в один прекрасный день может оказаться так, что заокеанский сервер недоступен.
Далее, фильтры некоторых заголовков, как например Location или Set-Cookies, могут оказаться "зависимыми" от фильтров WW.
Так, например, пришлось переделать фильтр "убивающий" рекламные переходы на groops.yahoo.com:

Цитата:

In = TRUE
Out = FALSE
Key = "Location: Yahoo relocator [warp] (in)"
URL = "*groups.yahoo.com/group/[^/]+/interrupt"
Match = "\0&($RESP(302*))&http://www.webwarper.net/ww/~fz/([^/]++)\1groups.yahoo.com/group/[^/]+/interrupt*done=\2(\3(\?|\&)\*|\4)"
Replace = "http://\1groups.yahoo.com$UESC(\2\3\4)$LOG(BRESP $DTM(c): Yahoo relocator: \0)"


В WW Redirect и WW Redirect 302 строки URL изменены на:
www.webwarper.net/ww/&(^*groups.yahoo.com/group/[^/]+/interrupt)

Фильтры, использующие URL соответствие, потребуют добавления "*" перед существующими именами адреса.

Вот, собственно, сборка:

Цитата:

[Patterns]
Name = "Cannot view WW [warp]"
Active = TRUE
URL = "(www.|)webwarper.net/ww/"
Bounds = "<!--\s~~~~WWMESSAGE -91*-->"
Limit = 512
Match = "(*Web\ssite:\s\1\scannot*)&($URL(http://(www.|)webwarper.net/ww/~fz/([^/]+)\2/))&($ADDLST(NonWarped,$WESC(\2)))"

Name = "Script UnWebWarper [warp]"
Active = TRUE
URL = "(www.|)webwarper.net/ww/"
Bounds = "<script\s*</script>"
Limit = 256
Match = "*(WWServiceScript|clientscriptgz)*"
Replace = "<script language="WWScript"></script>"

Name = "Links UnWebWarper [warp]"
Active = TRUE
Multi = TRUE
URL = "(www.|)webwarper.net/ww/"
Bounds = "<\w\s*>"
Limit = 1024
Match = "\1(www.|)webwarper.net/ww/~fz/\2(\3(\?|\&)\*\4|)"
Replace = "\1\2\3\4"

[HTTP headers]
In = TRUE
Out = FALSE
Key = "Location: WW Redirect (in) [warp]"
URL = "(www.|)webwarper.net/ww/&(^*groups.yahoo.com/group/[^/]+/interrupt)"
Match = "(^http://(www.|)webwarper.net/ww/*)&($RESP(302*))&(http://\1)&(http://([^\?\&]+{5,80})\2)&(^($LST(TWarp)))&($ADDLST(TWarp,$WESC(\2)))&($LOG(BTWarp: http://\1))"
Replace = "http://\1"

In = TRUE
Out = FALSE
Key = "Location: WW Redirect 302 (in) [warp]"
URL = "(www.|)webwarper.net/ww/&(^*groups.yahoo.com/group/[^/]+/interrupt)"
Match = "(\1http://(www.|)webwarper.net/ww/~fz/\2(\3(\?|\&)\*|\4))&($RESP((302|301)*))"
Replace = "\1http://\2\3\4"

In = TRUE
Out = FALSE
Key = "Set-cookie: Correct (in) [warp]"
Match = "*\0(path=/)\1ww/~fz/(passport|registration|)\2([^/]+)\3/*\4(;|)"
Replace = "\0\1\4; domain=\3"

In = TRUE
Out = FALSE
Key = "URL: Not Warp (in) (warp)"
URL = "(^(www.|)webwarper.net/ww/*)"
Match = "($IHDR(Content-Encoding: gzip))&(http:// (^$LST(NonWarped)))&($ADDLST(NonWarped,\h))"

In = FALSE
Out = TRUE
Key = "URL: UnWebWarper (out) [warp]"
URL = "(www.|)webwarper.net/ww/~fz/$LST(NonWarped)"
Match = "\1//(www.|)webwarper.net/ww/~fz/\2(\3(\?|\&)\*|\4)"
Replace = "$RDIR(\1//\2\3\4)"

In = TRUE
Out = FALSE
Key = "URL: Warp it! (in) ? [warp]"
URL = "(^(www.|)webwarper.net/ww/*)&(*\?\w)"
Match = "($RESP(200*))&(^$IHDR(Content-Encoding:(^(deflate|(^?)))))&(http://(^$LST(NonWarped)))&(http://(^$LST(Warped)))&(http://\1)&($ADDLST(Warped,\h))"
Replace = "$RDIR(http://webwarper.net/ww/~fz/\1\&\*)"

In = TRUE
Out = FALSE
Key = "URL: Warp it! (in) [warp]"
URL = "(^(www.|)webwarper.net/ww/*)&(^(*\?))"
Match = "($RESP(200*))&(^$IHDR(Content-Encoding:(^(deflate|(^?)))))&(http://(^$LST(NonWarped)))&(http://(^$LST(Warped)))&(http://\1)&($ADDLST(Warped,\h))"
Replace = "$RDIR(http://webwarper.net/ww/~fz/\1\?\*)"

In = FALSE
Out = TRUE
Key = "URL: WebWarper (out) [warp]"
URL = "(^(www.|)webwarper.net/ww/*)&(^$LST(NonWarped))&(^$LST(TWarp))&($LST(Warped))&(^(*\?))"
Match = "(http://(*\1.ru(^?)|*\1))"
Replace = "$RDIR(http://webwarper.net/ww/~fz/\1\?\*)"

In = FALSE
Out = TRUE
Key = "URL: WebWarper ? (out) [warp]"
URL = "(^(www.|)webwarper.net/ww/*)&(^$LST(NonWarped))&(^$LST(TWarp))&($LST(Warped))&(*\?\w)"
Match = "(http://(*\1.ru(^?)|*\1))"
Replace = "$RDIR(http://webwarper.net/ww/~fz/\1\&\*)"


Списков - 3. NonWarped, Warped, TWarp.

Первые строки NonWarped:
Цитата:

*.(css|ico|gif|jpg|jpeg|png|bmp|aspx|htc|xml|rss|rdf|swf|vdb|mpg|mp3|mpeg|avi|rm|rma|exe|zip|rar|r0?|7z|msi|ttf|psd|cdr|adb|bat|dat|dml|pdf|pic|ppt|doc|rtf|zlib|vbs)(\?|(^?))
(www.|)webwarper.net

TWarp задумывался как Trash список, но так получается, что мне легче его править, чем просто удалять. Это кому как больше понравится.


Последний раз редактировалось: vital mogilny (Вс, Авг 07 2005 22:15), всего редактировалось 5 раз(а)
К началу Профиль Сообщение
Миноз
Гость





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

В последнее время сталкиваюсь с проблемой:
Cannot load the page at the address
http://proxomitron.ru/board/index.php

Cannot bind socket to local Web-server "www.webwarper.net"

Maybe, $wwBindAddress variable in "WebWarper configuration" section of ww.pl file
should be corrected - or just cleared to 0 ("$wwBindAddress=0;") to disable binding.

Это глюк webwarper или моих настроек ?
К началу
vital mogilny
Advanced Member
Advanced Member


Зарегистрирован: 24.03.2005
Сообщения: 89

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

Да, это WW лихорадит.
Всегда можно проверить набрав "прямой" адрес:
http://www.webwarper.net/ww/~av/google.com/?*
К началу Профиль Сообщение
Показать сообщения:      
 
Новая тема  Ответить

 Перейти:   




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


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