Cookie задаются нестандартным способом

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Rody66
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 183
Зарегистрирован: 16.01.2011 (Вс) 17:03

Cookie задаются нестандартным способом

Сообщение Rody66 » 16.09.2012 (Вс) 20:56

Доброго времени.
Писал регистратор для сайта (используя WinHTTP), но, выяснилось, что сервер задает Cookie необычным способ. Не Set-Cookie в ответном заголовке, а, скорее всего, посредством яваскрипта, что-то вроде Document.Cookie=...
То есть нужно как-то получить доступ к объекту Document.
Плюс ко всему, с куками и без ResponseText выходит следующий:
16 09 12.jpg
16 09 12.jpg (93.18 Кб) Просмотров: 1886

С этим тоже, следовало бы разобраться.
Пробовал WebBrowser.Document.Cookie, но выкидывает ошибку об отсутствии метода.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Cookie задаются нестандартным способом

Сообщение iGrok » 16.09.2012 (Вс) 21:08

Заголовки покажи. Запроса и ответа.

Ну а по части куков - надо разобраться, как они задаются, а не гадать. Document.Cookie тебе точно не поможет.
Сайт у тебя есть, инструменты разработчика есть сейчас в любом браузере.
label:
cli
jmp label

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Cookie задаются нестандартным способом

Сообщение FireFenix » 16.09.2012 (Вс) 21:11

Rody66 писал(а):Плюс ко всему, с куками и без ResponseText выходит следующий

gzip? хидеры все выложи

Rody66 писал(а):То есть нужно как-то получить доступ к объекту Document.

Изучаем JS и используем тотжий алгоритм для получения печенек
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Rody66
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 183
Зарегистрирован: 16.01.2011 (Вс) 17:03

Re: Cookie задаются нестандартным способом

Сообщение Rody66 » 16.09.2012 (Вс) 21:58

Запрос:
Код: Выделить всё
    sHeads = _
    "Connection: keep-alive" & vbCrLf & _
    "Cache-Control: no-chache" & vbCrLf & _
    "User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" & vbCrLf & _
    "Content-Type: application/x-www-form-urlencoded" & vbCrLf & _
    "Accept: text/html, application/xhtml+xml, */*" & vbCrLf & _
    "Referer: http://kozel-promo.com/register/index.html" & vbCrLf & _
    "Accept-Encoding: gzip,deflate" & vbCrLf & _
    "Accept-Language: ru-RU"

Ответ:
Код: Выделить всё
(Status-Line):HTTP/1.0 200 Simple Response

Ответ браузеру на примерно тот же запрос (с монитора):
Код: Выделить всё
(Status-Line):HTTP/1.1 200 OK
Date:Sun, 16 Sep 2012 14:43:05 GMT
Server:Apache/2.2.22 (Ubuntu)
X-Powered-By:PHP/5.3.10-1ubuntu3.2
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma:no-cache
Execution-Time:0.079 sec.
ETag:5b6a1866c089c2a5f31855eb9f32bc3d
Content-encoding:gzip
Content-Length:2662
Keep-Alive:timeout=5, max=100
Connection:Keep-Alive
Content-Type:text/html;charset=windows-1251

Ну а по части куков - надо разобраться, как они задаются, а не гадать. Document.Cookie тебе точно не поможет.
Сайт у тебя есть, инструменты разработчика есть сейчас в любом браузере.

А какие еще есть варианты задать куки?

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 16.09.2012 (Вс) 22:16

Rody66 писал(а):Content-encoding:gzip

Rody66
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 183
Зарегистрирован: 16.01.2011 (Вс) 17:03

Re: Cookie задаются нестандартным способом

Сообщение Rody66 » 16.09.2012 (Вс) 22:28

Да, Я это видел.. Но только сейчас озарило, что нужно из zip'a декодировать. Верно?

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Cookie задаются нестандартным способом

Сообщение iGrok » 16.09.2012 (Вс) 22:36

Неверно. Из gzip'а. Либо учись декодировать gzip, либо убирай нафиг "Accept-Encoding: gzip,deflate".
Лучше учись декодировать.

Rody66 писал(а):А какие еще есть варианты задать куки?

Ajax-запрос с сайта, в ответе на который они задаются, или действительно document.cookie.
Но чаще первый вариант. Открывай раздел "Сеть" в инструментах разработчика в любом браузере, и ищи, где они ставятся.
label:
cli
jmp label

Rody66
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 183
Зарегистрирован: 16.01.2011 (Вс) 17:03

Re: Cookie задаются нестандартным способом

Сообщение Rody66 » 17.09.2012 (Пн) 0:41

То ли мне кажется, то ли там используется какая-то сверх гениальная система, и куки задаются через картинку http://www.google-analytics.com/__utm.gif
В конце концов, вот к чему пришел:
Скрипт http://www.google-analytics.com/ga.js генерирует ссылку на google-analytics и открывает её. Получается что-то вроде:
Код: Выделить всё
http://www.google-analytics.com/__utm.gif?utmwv=5.3.5&utms=1&utmn=369203520&utmhn=kozel-promo.com&utmcs=windows-1251&utmsr=1920x1080&utmvp=1903x653&utmsc=32-bit&utmul=ru&utmje=1&utmfl=11.3%20r31&utmdt=Velkopopovick%C3%BD%20Kozel.%20%D0%94%D1%80%D1%83%D0%B7%D1%8C%D1%8F%D0%BC%20%E2%80%94%20%D0%BF%D0%BE%D0%B4%D0%B0%D1%80%D0%BA%D0%B8.%20~%20%D0%A0%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F&utmhid=620451576&utmr=0&utmp=%2Fregister%2F&utmac=UA-25983881-4&utmcc=__utma%3D77396111.597604436.1347829738.1347829738.1347829738.1%3B%2B__utmz%3D77396111.1347829738.1.1.utmcsr%3D(direct)%7Cutmccn%3D(direct)%7Cutmcmd%3D(none)%3B&utmu=qB~

Данные по заголовкам:
Код: Выделить всё
Request URL:http://www.google-analytics.com/__utm.gif?utmwv=5.3.5&utms=1&utmn=369203520&utmhn=kozel-promo.com&utmcs=windows-1251&utmsr=1920x1080&utmvp=1903x653&utmsc=32-bit&utmul=ru&utmje=1&utmfl=11.3%20r31&utmdt=Velkopopovick%C3%BD%20Kozel.%20%D0%94%D1%80%D1%83%D0%B7%D1%8C%D1%8F%D0%BC%20%E2%80%94%20%D0%BF%D0%BE%D0%B4%D0%B0%D1%80%D0%BA%D0%B8.%20~%20%D0%A0%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F&utmhid=620451576&utmr=0&utmp=%2Fregister%2F&utmac=UA-25983881-4&utmcc=__utma%3D77396111.597604436.1347829738.1347829738.1347829738.1%3B%2B__utmz%3D77396111.1347829738.1.1.utmcsr%3D(direct)%7Cutmccn%3D(direct)%7Cutmcmd%3D(none)%3B&utmu=qB~
Request Method:GET
Status Code:200 OK
Request Headersview source
Accept:*/*
Accept-Charset:windows-1251,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Connection:keep-alive
Host:www.google-analytics.com
Referer:http://kozel-promo.com/register/
User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.10 (KHTML, like Gecko) Chrome/23.0.1262.0 Safari/537.10
Query String Parametersview URL encoded
utmwv:5.3.5
utms:1
utmn:369203520
utmhn:kozel-promo.com
utmcs:windows-1251
utmsr:1920x1080
utmvp:1903x653
utmsc:32-bit
utmul:ru
utmje:1
utmfl:11.3 r31
utmdt:Velkopopovický Kozel. Друзьям — подарки. ~ Регистрация
utmhid:620451576
utmr:0
utmp:/register/
utmac:UA-25983881-4
utmcc:__utma=77396111.597604436.1347829738.1347829738.1347829738.1;+__utmz=77396111.1347829738.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none);
utmu:qB~
Response Headersview source
Age:862750
Cache-Control:private, no-cache, no-cache=Set-Cookie, proxy-revalidate
Content-Length:35
Content-Type:image/gif
Date:Thu, 06 Sep 2012 21:29:47 GMT
Expires:Wed, 19 Apr 2000 11:43:00 GMT
Last-Modified:Wed, 21 Jan 2004 19:51:30 GMT
Pragma:no-cache
Server:GFE/2.0
X-Content-Type-Options:nosniff

И куки по-видимому задает как раз гугл, ибо ровно после того, как картинка загружена -- на сайте появляются куки.
Осталось теперь всё это дело в вб реализовать.
iGrok, большое спасибо за совет про инструмент разработчика, незаменимая вещь.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Cookie задаются нестандартным способом

Сообщение iGrok » 17.09.2012 (Пн) 1:27

Ну да, так и ставятся. Только конкретно в этом запросе я их не вижу.

Только это ж куки гугл-аналитикс. Сборщик статистики посещаемости, и т.п. Зачем тебе они вообще?
label:
cli
jmp label

Rody66
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 183
Зарегистрирован: 16.01.2011 (Вс) 17:03

Re: Cookie задаются нестандартным способом

Сообщение Rody66 » 17.09.2012 (Пн) 2:56

Как выяснилось, они незачем.
Нужные мне куки генерируются скриптом captcha.php.
Теперь, правда, сервер не хочет принимать русские символы в Post data.
Заголовок:
Код: Выделить всё
    sHeads = _
    "Connection: keep-alive" & vbCrLf & _
    "Cache-Control: no-chache" & vbCrLf & _
    "User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" & vbCrLf & _
    "Content-Type: application/x-www-form-urlencoded" & vbCrLf & _
    "Accept: text/html, application/xhtml+xml, */*" & vbCrLf & _
    "Accept-Language: ru-RU"

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 17.09.2012 (Пн) 7:12

Rody66 писал(а):Теперь, правда, сервер не хочет принимать русские символы в Post data.

Передавай Encoding и данные в соответствующей кодировке.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Cookie задаются нестандартным способом

Сообщение iGrok » 17.09.2012 (Пн) 7:15

Можно посмотреть при помощи тех же инструментов, как выглядит реальный запрос, и чем он отличается от твоего.
И от этого уже плясать.
label:
cli
jmp label

Rody66
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 183
Зарегистрирован: 16.01.2011 (Вс) 17:03

Re: Cookie задаются нестандартным способом

Сообщение Rody66 » 17.09.2012 (Пн) 10:17

Ответ оказался прост: %xx вместо русских символов. Всем спасибо за помощь, вопрос закрыт.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Cookie задаются нестандартным способом

Сообщение iGrok » 17.09.2012 (Пн) 11:51

Это называется URLEncode, если что.
label:
cli
jmp label


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 3

    TopList