Странные записи в redirector.err
пересобрал rejik с такими параметрами
PS: Если я хочу, чтобы url ни при каких обстоятельствах не проходили мимо правил rejika, достаточно изменить в redirector.c “printf ("%s",str)”
проверил check-redirector`ом вышеозначенные ограничения, генерируя url с превышением оных. Отработало правильно. Буду тестить на живых людях Если возникнут проблемы - отпишусь в этой теме.#define ML_URL 4096
#define ML_PROTOKOL 20
#define ML_DIRS 3666
#define ML_PORT 10
#define ML_2LD 200
#define ML_SUBDOMEN 200
PS: Если я хочу, чтобы url ни при каких обстоятельствах не проходили мимо правил rejika, достаточно изменить в redirector.c “printf ("%s",str)”
или есть еще лазейки? Ведь получается, что если у пользователя есть домен с длиной имени 210 символов, то он может спокойно работать с ним, не обращая внимания на ограничения режика?// 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 ("http://192.168.1.1/img/1x1.gif 127.0.0.1/- - GET");. Добавил правило запрещающее заход на сайт указанный ниже.
Захожу на сайт
http://www.public-organization-capital- ... s-welcomes
-all-inhabitants.of-the-planet-and-invites-them-to-visit-our-ancient-city.yours-faithfully-chairman
-of-government-anatolij-kosjanchuk.epak.infocom.lviv.ua/a.htm
В redirector.err
REDIRECTOR: WARNING: Can't parse url: http://www.public-organi
zation-capital-of-the-world.which-establishes-world-records-welcomes-all-inhabitants.of-th
e-planet-and-invites-them-to-visit-our-ancient-city.yours-faithfully-chairman-of-governmen
t-anatolij-kosjanchuk.epak.infocom.lviv.ua/a.htm. Pass.
В redirector.log пусто. Страница замечательно открывается минуя правила
PS:url порезал, чтоб текст не расползался.
Захожу на сайт
http://www.public-organization-capital- ... s-welcomes
-all-inhabitants.of-the-planet-and-invites-them-to-visit-our-ancient-city.yours-faithfully-chairman
-of-government-anatolij-kosjanchuk.epak.infocom.lviv.ua/a.htm
В redirector.err
REDIRECTOR: WARNING: Can't parse url: http://www.public-organi
zation-capital-of-the-world.which-establishes-world-records-welcomes-all-inhabitants.of-th
e-planet-and-invites-them-to-visit-our-ancient-city.yours-faithfully-chairman-of-governmen
t-anatolij-kosjanchuk.epak.infocom.lviv.ua/a.htm. Pass.
В redirector.log пусто. Страница замечательно открывается минуя правила
PS:url порезал, чтоб текст не расползался.
Значит размер буфера все равно меньше данных.
Проверка в redirector.c:
Можно вместо pass(); вписать printf ("http://192.168.1.1/img/1x1.gif 127.0.0.1/- - GET");
Что бы было понятнее, сделайте check-redirector с этим длинным урлом, раскоментарьте в vars.h DEBUG_PARSE_URL и DEBUG_CYCLE и запускайте check-redirecor.
Учтите, при включённых DEBUG переменных, режик будет выдавать на стандартный выход отладочную информацию. Если его в таком виде подключить к сквиду, то работать не будет.
Проверка в redirector.c:
Код: Выделить всё
// Check for allow_urls
#ifdef CASE_INDEPENDENT
z=parse_urls(i_url,input_url_uc);
if (z<0)
{
sprintf(etmp, "REDIRECTOR: WARNING: Can't parse url: %s. Pass.",input_url_uc);
err_mes(etmp);
pass();
continue;
}
#else
z=parse_urls(i_url,input_url_un);
if (z<0)
{
sprintf(etmp, "REDIRECTOR: WARNING: Can't parse url: %s. Pass.",input_url_un);
err_mes(etmp);
pass();
continue;
}
#endif
Что бы было понятнее, сделайте check-redirector с этим длинным урлом, раскоментарьте в vars.h DEBUG_PARSE_URL и DEBUG_CYCLE и запускайте check-redirecor.
Учтите, при включённых DEBUG переменных, режик будет выдавать на стандартный выход отладочную информацию. Если его в таком виде подключить к сквиду, то работать не будет.
Проверил, пропускает.
http://mail.ru?q=qqqqqqqqq&q=qqqqqqqqq&........(до максимальной длины)
прекрасно открывается.
В чем проблема обрезать строку до максимально допустимой длины и проверить ее?
http://mail.ru?q=qqqqqqqqq&q=qqqqqqqqq&........(до максимальной длины)
прекрасно открывается.
В чем проблема обрезать строку до максимально допустимой длины и проверить ее?