ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > SЕО/Финансовые задачи/Социальные сети > Социальные сети
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

ВКонтакте API вопрос
  #1  
Старый 20.12.2009, 00:35
ErrorNeo
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме:
4297091

Репутация: 2261


Отправить сообщение для ErrorNeo с помощью ICQ
По умолчанию ВКонтакте API вопрос

есть приложение, оно рабоатет с swf-кой(она же есть "приложение") с АПИ контакта и со скриптом на собственном сайте приложения.
Лог запросов\ответов браузера ниже.

Вопрос:
откуда берется так называемый "sig", уникальный для каждого запроса. Каким образом он "впаривается" моему браузеру, и каким образом я могу получить его минуя браузер (программно).

Во избежание вопросов - пишу программу, которая будет взаимодействовать с приложением ВК.
Все работает отлично, но есть проблемы с получением "sig", уникальных для различных акаунтов. Эти sig успешно (откуда-то) получает мой браузер, но совершенно не могу понять откуда.

Код:
GET /app685176_9239448 HTTP/1.1
Accept: */*
Accept-Language: ru
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 ()
Host: vkontakte.ru
Connection: Keep-Alive
Cookie: remixchk=5; remixlang=0; remixclosed_tabs=0; remixsid=c5ed98193ed93ed93ed234a93ed2b6047dc9bf10f5325ff03f2d7307; audio_vol=38


HTTP/1.1 200 OK
<тело ответа>


POST /api.php HTTP/1.1
Accept: */*
Accept-Language: ru-RU
Referer: http://cs4682.vkontakte.ru/u3458259/5zmzki919ad.zip
x-flash-version: 10,0,12,36
Content-Type: application/x-www-form-urlencoded
Content-Length: 81
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 ()
Host: api.vkontakte.ru
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: remixchk=5; remixlang=0; remixclosed_tabs=0; remixsid=c5ed98193ed93ed93ed234a93ed2b6047dc9bf10f5325ff03f2d7307; audio_vol=38

sig=2623e384b776d7db281ee7bd2a31c12b&method=getServerTime&api%5Fid=685176&v=2%2E0

HTTP/1.1 200 OK
<тело ответа>


POST /api.php HTTP/1.1
Accept: */*
Accept-Language: ru-RU
Referer: http://cs4682.vkontakte.ru/u3458259/5zmzki919ad.zip
x-flash-version: 10,0,12,36
Content-Type: application/x-www-form-urlencoded
Content-Length: 130
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 ()
Host: friendorfoe.msk.ru
Connection: Keep-Alive
Cache-Control: no-cache

sig=f1a8dbefda72722a78278dea820c49e6&date=1261170000&method=getGuestsList&vid=43211696&auth%5Fkey=291d6321c94f4455b1e9f4799eb116e5

HTTP/1.1 200 OK
<тело ответа>

за решение с меня +15.

Последний раз редактировалось ErrorNeo; 20.12.2009 в 00:43..
 
Ответить с цитированием

  #2  
Старый 20.12.2009, 00:52
Kaimi
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


Отправить сообщение для Kaimi с помощью ICQ
По умолчанию

Так в мануалах же:
Цитата:
Как создавать подпись запроса?
Параметр sig равен md5 от конкатенации следующих строк:

* viewer_id – id текущего пользователя, переданный SWF посредством flashvars при инициализации.
* пар "parameter_name=parameter_value", расположенных в порядке возрастания имени параметра (по алфавиту).
* секрета приложения api_secret (секрет Вы можете менять при редактировании страницы приложения).



sig = md5(viewer_idname1=value1name2=value2secret)


В данном случае sig равен md5("6492api_id=4method=getFriendsv=2.0secret") то есть b499ce268e9995a08b2f2aebff2488be
 
Ответить с цитированием

  #3  
Старый 20.12.2009, 01:16
Eo0
Познающий
Регистрация: 12.09.2009
Сообщений: 61
Провел на форуме:
818777

Репутация: 19
По умолчанию

Всё в группе с манулами есть, почти на все вопросы ответ там нашёл.
Цитата:
и каким образом я могу получить его минуя браузер (программно).
если "secret" не известен ни как.

Последний раз редактировалось Eo0; 20.12.2009 в 01:20..
 
Ответить с цитированием

  #4  
Старый 20.12.2009, 01:20
ErrorNeo
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме:
4297091

Репутация: 2261


Отправить сообщение для ErrorNeo с помощью ICQ
По умолчанию

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

Цитата:
* viewer_id – id текущего пользователя, переданный SWF посредством flashvars при инициализации.
* пар "parameter_name=parameter_value", расположенных в порядке возрастания имени параметра (по алфавиту).
* секрета приложения api_secret (секрет Вы можете менять при редактировании страницы приложения).



sig = md5(viewer_idname1=value1name2=value2secret)


В данном случае sig равен md5("6492api_id=4method=getFriendsv=2.0secret") то есть b499ce268e9995a08b2f2aebff2488be
т.е. не являясь создателем приложения я не могу высчитать sig для нужного мне запроса?
если так, то может кто-нибудь подсказать, можно ли этот sig получить де-факто без использования флэш, одними лишь методами http запросов?
как-то же должны иметь возможность программы на дельфи взаимодействовать с этим flash-em =\
 
Ответить с цитированием

  #5  
Старый 20.12.2009, 01:23
Eo0
Познающий
Регистрация: 12.09.2009
Сообщений: 61
Провел на форуме:
818777

Репутация: 19
По умолчанию

узнаёт sig флешка с запроса на сайт создателя приложеня, secret не узнаешь и не сбрутишь A-Za-z{10} если с голосами дело то вообще 20 символов.
 
Ответить с цитированием

  #6  
Старый 20.12.2009, 01:25
ErrorNeo
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме:
4297091

Репутация: 2261


Отправить сообщение для ErrorNeo с помощью ICQ
По умолчанию

Цитата:
Сообщение от Eo0  
Цитата:
и каким образом я могу получить его минуя браузер (программно).
если "secret" не известен ни как.
собственно вопрос.
браузер может имея вводные данные запросить свф-ку (она же "приложение"), и получить в ответ sig.

То же самое требуется сделать из обычной программы на дельфи, не являющейся браузером.
Вопрос в том, как... =\

зы. все "легально", т.е. нужно просто переписать то, что я могу сделать и сам в браузере - в программу средствами какого-либо компилируемого (Си\Дельфи) языка.
Программа собственно уже готова, и вопрос стал только в получении sig не-браузерными методами.

Последний раз редактировалось ErrorNeo; 20.12.2009 в 01:32..
 
Ответить с цитированием

  #7  
Старый 20.12.2009, 01:32
Eo0
Познающий
Регистрация: 12.09.2009
Сообщений: 61
Провел на форуме:
818777

Репутация: 19
По умолчанию

Цитата:
Сообщение от ErrorNeo  
собственно вопрос.
браузер может имея вводные данные запросить свф-ку (она же "приложение"), и получить в ответ sig.

То же самое требуется сделать из обычной программы на дельфи, не являющейся браузером.
Вопрос в том, как... =\
это реально, наснифай запрос от флеш и воссоздай программой, sig меняется из-за присутствия rand но его не обязательно менять, спокойно крутил одно приложение с одинаковым sig всё работает.
 
Ответить с цитированием

  #8  
Старый 20.12.2009, 01:37
ErrorNeo
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме:
4297091

Репутация: 2261


Отправить сообщение для ErrorNeo с помощью ICQ
По умолчанию

я воссоздаю все запросы
но для того, чтобы воссоздать тот самый запрос с sig для другого аккаунта, нужен другой sig {от этого - другого аккаунта} (в остальном все идентично).

Чтобы отправить в запросе sig, его предварительно нужно как-то программно получить(для этого - другого - акаунта).
Вот в этом собственно и проблема, потому как этот самый sig не передается мне изначально (сниффаю. нет никаких сигов в зепросах что я получаю. ни в одном! да и хэшей{наборов символов} этих там нет)

т.е. в первом же запросе, в приведенном мною примере, нет ничего даже отдальнно похожего на sig=2623e384b776d7db281ee7bd2a31c12b
тем не менее уже во втором запросе мой браузер шлет этот сиг в теле пост запроса.
Спрашивается - откуда мой браузер получил этот параметр со значением?)

Последний раз редактировалось ErrorNeo; 20.12.2009 в 01:41..
 
Ответить с цитированием

  #9  
Старый 20.12.2009, 01:40
Eo0
Познающий
Регистрация: 12.09.2009
Сообщений: 61
Провел на форуме:
818777

Репутация: 19
По умолчанию

Цитата:
Сообщение от ErrorNeo  
я воссоздаю все запросы
но для того, чтобы воссоздать тот самый запрос с sig для другого аккаунта, нужен другой sig {от этого - другого аккаунта} (в остальном все идентично).

Чтобы отправить в запросе sig, его предварительно нужно как-то программно получить(для этого - другого - акаунта).
Вот в этом собственно и проблема, потому как этот самый sig не передается мне изначально (сниффаю. нет никаких сигов в зепросах что я получаю. ни в одном! да и хэшей{наборов символов} этих там нет)
сам с sig получается с сервера приложения не знаю почему снифер не находит,у меня эти запросы были видны,может проблема в нём?
 
Ответить с цитированием

  #10  
Старый 20.12.2009, 01:42
ErrorNeo
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме:
4297091

Репутация: 2261


Отправить сообщение для ErrorNeo с помощью ICQ
По умолчанию

Eo0 дай плз названия сниффера, с помощью которого ты видел sig'и.
Я юзаю smartsniff, никогда не жаловался, но сколько не искал, не смог найти в запросах того, как мне передают эти значения=\
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Методы API Вконтакте SoulReaver Социальные сети 0 12.08.2009 15:46
Вопрос по рейтингу вконтакте! eskimo170 Болталка 22 01.08.2009 12:15
вопрос по акам вконтакте! moSS Социальные сети 12 25.06.2009 13:34
Proxy FAQ foreva Чужие Статьи 12 04.01.2008 12:15
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ