Автор |
Сообщение |
Bonart
Filter Developer

Зарегистрирован: 29.11.2004
Сообщения: 78
Откуда: Самара
|
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

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

Зарегистрирован: 22.01.2005
Сообщения: 34
|
угу, с авторизацией где только можно, начались большие проблы...
2mogilny: лишний список для мусора проблемой не будет, главное чтоб все в кучу в NonWarped не смешивалось
|
|
|
К началу |
Профиль Сообщение |
 |
Bonart
Filter Developer

Зарегистрирован: 29.11.2004
Сообщения: 78
Откуда: Самара
|
2 taimael
Тогда лови
Цитата: |
[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

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

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

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

Зарегистрирован: 29.11.2004
Сообщения: 78
Откуда: Самара
|
Кажется, что глюки с авторизацией удалось побороть:
Цитата: |
[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

Зарегистрирован: 24.03.2005
Сообщения: 89
|
Как выяснилось, при переадресации теряется информация, посылаемая
Content-Type: application/x-www-form-urlencoded. Соответственно, каждый раз выдается новый запрос пароль/логин.
В случае со списком, цикл повторяется только единожды.
|
|
|
К началу |
Профиль Сообщение |
 |
Гость
|
2 Vital Mogilny
Ты хочешь сказать, что достаточно ввести в фильтр WebWarper проверку на это и все будет хорошо?
|
|
|
К началу |
|
 |
vital mogilny
Advanced Member

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

Зарегистрирован: 24.03.2005
Сообщения: 89
|
Новая версия корректора куки, так сказать, 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

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

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

Зарегистрирован: 30.06.2004
Сообщения: 2635
Откуда: SPb
|
Bonart, vital mogilny:
Действительно, люди, выложите каждый по полному набору своей рабочей версии комплекта (у вас ведь они немного разные?), а то тут без пол-литра не разберёшься, что брать, на что заменять..
|
_________________ Как правильно задавать вопросы |
|
К началу |
Профиль Сообщение |
 |
Kloned[D]
Гость
|
я пользуюсь уже почти две недели моей сборкой из кусков филтров выложенных в этом разделе форума. За все время работы лишь несколько раз приходилось делать 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>"
|
|
|
|
К началу |
|
 |
Гость
|
Парни вы сделали великое дело!
Собрал я в кучу фильтры от [BON]-работает... Действительно заметно жмёт трафик, но и скорость упала заметно. Я использую с другими стандартными фильтрами прокса это правельно?
|
|
|
К началу |
|
 |
vital mogilny
Advanced Member

Зарегистрирован: 24.03.2005
Сообщения: 89
|
Первым делом, сделаю "реверанс" в сторону 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 раз(а) |
|
К началу |
Профиль Сообщение |
 |
Миноз
Гость
|
В последнее время сталкиваюсь с проблемой:
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

Зарегистрирован: 24.03.2005
Сообщения: 89
|
|
К началу |
Профиль Сообщение |
 |
|