Странные записи в redirector.err

Обсуждение программы редиректора
KI
Сообщения: 12
Зарегистрирован: Сб май 29, 2004 21:02

Странные записи в redirector.err

Сообщение KI »

Добрый день,
появились странные записи в redirector.err, при этом никаких записей о других ошибках или о занятости редиректоров:

2007-03-31 23:16:13 [1222] REDIRECTOR: WARNING: Can't parse url: http://hphqeasybuyv2.112.2o7.net/b/ss/h ... =31/2/2007 23:16:1 6 -240&ce=UTF-8&pageName=EZB Classic View | psc | ru | ru | smb | products/printing & digital imaging/hp laserjet 3052/3055 all-in-one series/q6503a&g=http://h10010.www1.hp.com/wwpc/ru/ru/sm ... RUR&c1=pre sales&v1=ru | ru | smb&c2=products&c3=printing & digital imaging/hp laserjet 3052/3055 all-in-one series/q6503a&c4=psc&v4=psc&c5=psc|/ru/ru/smb/pre_sales/products/printing_digital_imaging/hp_laserjet_3052/3055_all-in-one_series/q6503a|/wwpc/ru/ru/sm/WF06b/389237-385683-389301-389301-1794313-12245162-59561585.html&c7=ru&c8=ru&c9=smb&c10=ru/ru/smb/pre sales/products/printing & digital imaging/hp laserjet 3052/3055 all-in-one series/q6503a&c12=r2515&c13=hphqeasybuyv2&c17=reg_r1002_ruru|http://h10010.www1.hp.com/wwpc/ru/ru/sm ... &hp=N&[AQE]. Pass.


2007-04-02 10:32:22 [10312] REDIRECTOR: WARNING: Can't parse url: http://pic.geocities.com/images/pixel.g ... =Microsoft Internet Explorer&version=4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&os=Win32&xdomain=bidvertiser.com&custid=bidvertiser. Pass.


2007-04-05 17:36:27 [57395] REDIRECTOR: WARNING: Can't parse url: http://counter.yadro.ru/hit;HeadHunter? ... 0442%u0430 %u043D%u0430 HeadHunter %u2013 %u0432%u0430%u043A%u0430%u043D%u0441%u0438%u0438 %u0438 %u0440%u0435%u0437%u044E%u043C%u0435. %u041F%u043E%u0438%u0441%u043A %u0440%u0430%u0431%u043E%u0442%u044B %u0438 %u043F%u043E%u0434%u0431%u043E%u0440 %u043F%u0435%u0440%u0441%u043E%u043D%u0430%u043B%u0430. %u0420%u0430%u0431%u043E%u0442;0.8882598138054332. Pass.


2007-04-09 13:38:29 [61722] REDIRECTOR: WARNING: Can't parse url: http://ad3.bannerbank.ru/bb.cgi?cmd=ad& ... 0438%u044F %u043F%u043E%u043B%u0438%u0442%u043E%u043B%u043E%u0433%u0438%u044F %u0441%u043A%u0430%u0447%u0430%u0442%u044C %u043F%u043E%u043B%u0438%u0442%u0438%u0447%u0435%u0441%u043A%u0430%u044F %u043F%u043E%u043B%u0438%u0442%u043E%u043B%u043E%u0433%u0438%u044F %u043F%u043E%u043B%u0438%u0442%u043E%u043B%u043E%u0433%u0438%u044F %u043B%u0435%u043A%u0446%u0438%u0438 %u0443%u0447%u0435%u0431%u043D%u0438%u043A%u0438 %u043F%u043E%u043B%u0438%u0442%u043E%u043B%u043E%u0433%u0438%u0438%u043F%u043E%u043B%u0438%u0442%u043E%u043B%u043E%u0433%u0438%u044F %u043F%u043E%u043B%u0438%u0442%u043E%u043B%u043E%u0433%u0438%u044F %u0441%u043A%u0430%u0447%u0430%u0442%u044C %u043F%u043E%u043B%u0438%u0442%u0438%u0447%u0435%u0441%u043A%u0430%u044F %u043F%u043E%u043B%u0438%u0442%u043E%u043B%u043E%u0433%u0438%u044F %u043F%u043E%u043B%u0438%u0442%u043E%u043B%u043E%u0433%u0438%u044F %u043B%u0435%u043A%u0446%u0438%u0438 %u0443%u0447%u0435%u0431%u043D%u0438%u043A%u0438 %u043F%u043E%u043B%u0438%u0442%u043E%u043B%u043E%u0433%u0438%u0438&loc=&nocache=726752. Pass.

Что можно предпринять? Раньше ничего подобного не наблюдалось

Rejik 3.2.1 (из портов) на FreeBSD 6.2

Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Сообщение Slava »

Ничего страшного, режик получает урл, длинее, чем в нем предусмотренно.
в этом случае ссылка пропускается.

gloomymen
Сообщения: 32
Зарегистрирован: Сб фев 12, 2005 1:11

Сообщение gloomymen »

Slava писал(а):Ничего страшного, режик получает урл, длинее, чем в нем предусмотренно.
в этом случае ссылка пропускается.
хочу увеличить длину, изменять эту константу?
#define ML_URL 4095

gloomymen
Сообщения: 32
Зарегистрирован: Сб фев 12, 2005 1:11

Сообщение gloomymen »

Slava писал(а):Ничего страшного, режик получает урл, длинее, чем в нем предусмотренно.
в этом случае ссылка пропускается.
хочу увеличить длину, изменять эту константу?
#define ML_URL 4095

Slonic
Сообщения: 11
Зарегистрирован: Пн окт 29, 2007 14:58

Сообщение Slonic »

Slava писал(а):Ничего страшного, режик получает урл, длинее, чем в нем предусмотренно.
в этом случае ссылка пропускается.
Можно немного некропостов ? :)
Хотелось бы узнать, что подразумевается под фразой "ссылка пропускается"?
Ссылка не обрабатывается и отбрасывается или пользователь получает этот объект вне зависимости от фильтров режика?
Если второе, то можно ли это отключить?

Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Сообщение Slava »

Slonic писал(а): Хотелось бы узнать, что подразумевается под фразой "ссылка пропускается"?
Ссылка не обрабатывается и отбрасывается или пользователь получает этот объект вне зависимости от фильтров режика?
Если второе, то можно ли это отключить?
Это значит, что пользователь загрузит объект.

Вот код:

Код: Выделить всё

          // If error in convert
            printf ("%s",str); -- это пропуск объекта
            fflush(stdout);
            sprintf(etmp,"Error convert input string to input structure str=%s",str);
            err_mes(etmp);
            continue;
Впишите вместо printf ("%s",str);
строку вида: printf ("my_web_server.ru/ban_page.html 127.0.0.1/- - GET");

Slonic
Сообщения: 11
Зарегистрирован: Пн окт 29, 2007 14:58

Сообщение Slonic »

большое спасибо

Slonic
Сообщения: 11
Зарегистрирован: Пн окт 29, 2007 14:58

Сообщение Slonic »

Вопрос в догонку :)
Почему макс размер ML_URL выбран 4095? Увеличение его не приведет к проблемам?

Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Сообщение Slava »

Если не ошибаюсь, я взял этот размер из кода сквида, то есть, максимальный размер, который он принимает.

Увеличение этого параметра в режике может привести к переполнению буферов, так как другие ML_ заданы с учётом этого размера урла.

Slonic
Сообщения: 11
Зарегистрирован: Пн окт 29, 2007 14:58

Сообщение Slonic »

Видимо отсюда
/squid-2.6.STABLE16/src/defines.h
#define MAX_URL 4096


Я не совсем понимаю механизма работы сквида с редиректорами :( Как получается, что url длина
которого не принимается сквидом доходит до режика? Это нормально или это у меня проблемы?

PS: Я использую режик для ограничения доступа пользователям и идея того, что простым удлинением url
можно обойти все фильтры мне не очень нравится :)

PPS: Я пересобрал redirector с изменениями, которые вы посоветовали выше. Пытаюсь проверить :)

Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Сообщение Slava »

Затрудняюсь ответить, как сквид поступает с большей длинной урлов, если есть желание, то думаю метод тыка будет самым простым.

Slonic
Сообщения: 11
Зарегистрирован: Пн окт 29, 2007 14:58

Сообщение Slonic »

Не хочу показаться назойливым, но как считается длинна url? Просто количество символов? Приведенные в первом посте линки ( и мои)
которые вызывали подобную ошибку длинной от 1200-1500 символов.
Действительно ли дело в превышении лимита в 4k символов?

Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Сообщение Slava »

посмотрите parse_urls.c

Эта функция разбирает урл и определяет, годен он или нет.
В нем есть другие ML_, на одном из них и сра

Slonic
Сообщения: 11
Зарегистрирован: Пн окт 29, 2007 14:58

Сообщение Slonic »

эм, я уже наверно заколебал :) Разбираясь со своей проблемой, стал
изучать parse_urls.c.
-1 мне выдает вот эта часть:
len=(url+strlen(url)-separator);
if (len>ML_DIRS) return(-1);
Насколько я понял, len - это длинна нашего урла минус длина
доменного и субдоменных имен. Тоесть длина строки после первого
слеша (если не считать "://" ). Далее она сравнивается с
ML_DIRS=1024.

Если всё правильно, то хотелось бы узнать, исходя из чего выставлены
такие ограничения? Получается, что длина url в целом может быть 4к,
а len всего 1к. Тоесть домены с субдоменами на 3к растянутся. Может
наоборот предполагалось?

PS: Можно ли увеличить dirs до 3k? проблем не будет?

Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Сообщение Slava »

Из каких соображений выставлял на тот момент, уже не помню.
Если увеличить, то возможны проблемы с переполнением буфера, так как какой нибудь ML_ может быть задан с оглядкой на размер ML_DIRS.
Хотя может и не быть проблем.

Думаю, что лучше всего изменить и провести некий краш-тест, передав максимально длинный урл, с длинными дирами, доменами итд..

Сделать это можно через check-redirector

PS: Не переживайте по поводу назойливости

Ответить