Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB58.8280
BTC/USD0.0000
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 13.03.2009, 16:12   #1
durman
Senior Member
 
Аватар для durman
 
Регистрация: 06.02.2008
Сообщений: 315
Бабло: $91645
По умолчанию защита от ботов на LWP::UserAgent

т.к. я сам пишу ботов используя LWP::UserAgent (это модуль perl), наткнулся на интересную особенность.
LWP::UserAgent работает строго по протоколу и если ему подсунуть куки, которые по дате должны были уже протухнуть (expires < current time), то LWP проигнорирует эту куку ,и казалось бы правильно сделает. А вот браузер , например ff, принудительно установит expires time у такой куки на пару часов больше текущего локального времени и будет её использовать.

На тестируемым мной сайте овнеры не делали такой защиты специально, они это сделали случайно т.к. ставят куку на пару часов вперёд относительно своего серверного времени, а из-за разности часовых поесов, мой бот не смог авторизоваться.

зы, буду благодарен если кто подскажет как заставить lwp игнорировать expires time у куки и юзать её.
durman вне форума  
Старый 13.03.2009, 22:43   #2
bataka
Senior Member
 
Регистрация: 06.04.2008
Сообщений: 337
Бабло: $4080
По умолчанию

так глянул, вроде это
хтя ниче не гарантирую закоменть попробуй, ну похоже

HTTP::Cookies
Код:
if ($expires && $expires < $now) {
next;}
bataka вне форума  
Старый 15.03.2009, 23:51   #3
Eddie
Редко захожу на форум
 
Регистрация: 22.08.2007
Сообщений: 82
Бабло: $11425
По умолчанию

Код:
$ua = LWP::UserAgent->new( cookie_jar =>HTTP::Cookies->new( file => '/tmp/cookies.txt', autosave => 1, ignore_discard => 1 ));
Eddie вне форума  
Старый 16.03.2009, 12:52   #4
durman
Senior Member
 
Аватар для durman
 
Регистрация: 06.02.2008
Сообщений: 315
Бабло: $91645
ТС -->
автор темы ТС По умолчанию

ага, тож нашёл этот параметр ( ignore_discard => 1) вот только я не сохраняю куки в файл, а без этого похоже он не действует.
durman вне форума