Сайт Vkontakte.ru — это одна из самых популярных соц сетей России.
Большая известность, повлекла за собой программистов. Появилось много программ, для этого сайта. Например клиент-серверы.
Специально для этого Администраторы сайта создали API, через который зарегистрированные приложения могут совершать различные действия, такие как отправка сообщения, просмотр списка друзей и т.д
Но для тех кто не хочет регистрировать, вот скрипт для авторизации:
import urllib import urllib2 import re import sys import math import os import time class Vkontakte: def __init__(self, email, password): self.email = email self.password = password self.cookie = None def get_s_value(self): #Возвращает уникальный идентификатор, который выдается на домене login.vk.com host = ‘http://login.vk.com/?act=login’ post = urllib.urlencode(’email’ : self.email, ‘expire’ : », ‘pass’ : self.password, ‘vk’ : »>) headers = ‘User-Agent’ : ‘Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.13) Gecko/2009073022 Firefox/3.0.13 (.NET CLR 3.5.30729)’, ‘Host’ : ‘login.vk.com’, ‘Referer’ : ‘http://vkontakte.ru/index.php’, ‘Connection’ : ‘close’, ‘Pragma’ : ‘no-cache’, ‘Cache-Control’ : ‘no-cache’, > conn = urllib2.Request(host, post, headers) data = urllib2.urlopen(conn) my_crack = str(data.read( ))[350:410] return my_crack def get_cookie(self): #Возвращает remixsid из куки if self.cookie: return self.cookie host = ‘http://vkontakte.ru/login.php?op=slogin’ post = urllib.urlencode(‘s’ : self.get_s_value( )>) headers = ‘User-Agent’ : ‘Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.13) Gecko/2009073022 Firefox/3.0.13’, ‘Host’ : ‘vkontakte.ru’, ‘Referer’ : ‘http://login.vk.com/?act=login’, ‘Connection’ : ‘close’, ‘Cookie’ : ‘remixchk=5; remixsid=nonenone’, ‘Pragma’ : ‘no-cache’, ‘Cache-Control’ : ‘no-cache’ > conn = urllib2.Request(host, post, headers) data = urllib2.urlopen(conn) cookie_src = data.info( ).get(‘Set-Cookie’) self.cookie = re.sub(r'(expires=.*?
;s|path=/;s|domain=.vkontakte.ru(. s)?)’, », cookie_src) return self.cookie def friends(self): cook = self.get_cookie( ) host = ‘http://vkontakte.ru/friends_ajax.php’ post = urllib.urlencode(‘s’ : self.get_s_value( )>) headers = ‘User-Agent’ : ‘Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.13) Gecko/2009073022 Firefox/3.0.13′,’Host’ : ‘vkontakte.ru’,’Referer’ : ‘http://login.vk.com/?act=login’,’Connection’ : ‘close’,’Cookie’ : ‘remixchk=5; ‘+cook,’Pragma’ : ‘no-cache’,’Cache-Control’ : ‘no-cache’> conn = urllib2.Request(host, post, headers) data = urllib2.urlopen(conn) my_fr = str(data.read( )) return my_fr
vk = Vkontakte(ваш email,ваш пароль) print vk.get_cookie( )
Cookie вконтакте (флаг HttpOnly и remixsid, атрибут Secure)
Источник: pythonblogg.blogspot.com
Remixsid вконтакте как узнать
Начал недавно изучать синапс и уже прошерстил форумы по этой теме, вобщем пытаюсь авторизоваться вконтакте по средствам синапса.
Как получить токен ВК | Как узнать токен Api Vk приложения для выполнения действий по api
Посмотрел что передается снифером,
вот код самой проги
function Setkuki (const x2 : string ): string ;
var CookieList : TstringList ; cookie , x3 : string ; y , i : integer ;
begin
x3 := x2 ;
if pos ( ‘Set-Cookie:’ , x3 )<> 0 then
begin
CookieList := TstringList . Create ;
while Pos ( ‘Set-Cookie’ , x3 ) <> 0 do
begin
y := Pos ( ‘Set-Cookie’ , x3 );
i := PosEx ( ‘: ‘ , x3 , y ) + 2 ;
CookieList . Add ( Copy ( x3 , i , PosEx ( ‘;’ , x3 , i ) — i ));
Delete ( x3 , y , 10 );
end ;
cookie := ‘Cookie: ‘ ;
for i := 0 to CookieList . Count — 1 do
cookie := cookie + CookieList . Strings [ i ] + ‘; ‘ ;
CookieList . Free ;
end ;
Result := cookie ;
end ;
procedure TForm1 . Button1Click ( Sender : TObject );
var
HTTP : THTTPSend ;
sl : TStringList ;
hash : string ;
post : TStringStream ;
cookieses : string ;
begin
HTTP := THTTPSend . Create ;;
sl := TStringList . Create ;
post := TStringStream . Create ;
//заголовки
HTTP . MimeType := ‘application/x-www-form-urlencodet’ ;
HTTP . UserAgent := ‘Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0’ ;
HTTP . Headers . Add ( ‘Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8’ );
HTTP . Headers . Add ( ‘Referer: http://m.vk.com/’ );
//=====================
HTTP . HTTPMethod ( ‘Get’ , ‘http://m.vk.com/’ );
sl . LoadFromStream ( HTTP . Document );
cookieses := setkuki ( http . Headers . Text );
memo2 . Lines . Add ( http . Headers . Text );
hash := Pars ( ‘, sl . Text , ‘» novalidate>’ );
memo2 . Lines . Add ( hash );
sl . Clear ;
HTTP . Clear ;
HTTP . Cookies . Add ( cookieses );
post . WriteString ( ’email=логин //формирую для отправки пост запроса
HTTP . Document . LoadFromStream ( post );
HTTP . HTTPMethod ( ‘POST’ , hash ); // отправляю пост запрос на спарсеную ссылку
sl . LoadFromStream ( HTTP . Document );
cookieses := setkuki ( http . Headers . Text );
showmessage ( http . Headers . Text );
Memo1 . Lines . add ( http . Headers . Text );
Memo1 . Lines . add ( http . Cookies . Text );
http . Clear ;
//парсю location
HTTP . Cookies . Add ( cookieses );
edit1 . Text := Copy ( Memo1 . Lines [ 10 ], 11 , length ( Memo1 . Lines [ 10 ]));
HTTP . HTTPMethod ( ‘Get’ , edit1 . Text ); //делаю гет запрос
cookieses := setkuki ( http . Headers . Text );
sl . LoadFromStream ( HTTP . Document );
http . Clear ;
Memo1 . Lines . add ( http . Headers . Text );
Memo1 . Lines . add ( http . Cookies . Text );
Memo1 . Lines . add ( sl . Text );
в общем в куках передается то что должно быть в location, как то оно там собирается и получается ссылка для дальнейшего редиректа, но у меня не получается получить куки, в чем проблема не понимаю, помогите народ
вот то что получаю
HTTP / 1.1 302 Found
Server : Apache
Date : Sat , 10 Jan 2015 20 : 44 : 56 GMT
Content — Type : text / html ; charset = windows — 1251
Content — Length : 0
Connection : keep — alive
X — Powered — By : PHP / 3.10287
Pragma : no — cache
Cache — control : no — store
P3P : CP = «IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT»
Location : http : //m.vk.com/login?role=fasts=0dif=1
remixlang = 0
Cookie : remixlang = 0 ;
remixmid = DELETED
remixsid = DELETED
remixsid6 = DELETED
remixgid = DELETED
remixemail = DELETED
remixpass = DELETED
remixapi_sid = DELETED
remixpermit = DELETED
remixsslsid = DELETED
Последний раз редактировалось albionseo; 10.01.2015 в 23:50 .
Форумчанин
Регистрация: 19.08.2011
Сообщений: 329
Класс THTTPSend сам сохраняет куки, ничего придумывать своё не стоит =)
Пользователь
Регистрация: 02.01.2015
Сообщений: 17
почему тогда я их не вижу?
Форумчанин
Регистрация: 19.08.2011
Сообщений: 329
HTTP.Cookies.Text ?
Пользователь
Регистрация: 02.01.2015
Сообщений: 17
HTTP.Cookies.Text ?
ну да, выдает мне только
remixlang = 0
remixmid = DELETED
remixsid = DELETED
remixsid6 = DELETED
remixgid = DELETED
remixemail = DELETED
remixpass = DELETED
remixapi_sid = DELETED
remixpermit = DELETED
remixsslsid = DELETED
Set — Cookie : h = 1 ; expires = Thu , 21 Jan 2016 10 : 49 : 20 GMT ; path =/; domain = login . vk . com ; HttpOnly
Set — Cookie : s = 1 ; expires = Sat , 02 Jan 2016 18 : 37 : 06 GMT ; path =/; domain = login . vk . com ; secure ; HttpOnly
Set — Cookie : l = 251624135 ; expires = Fri , 01 Jan 2016 09 : 50 : 07 GMT ; path =/; domain = login . vk . com ; secure ; HttpOnly
Set — Cookie : p = d6ca0d0487ade76fa5cf4a877ac90787b3f4dc410c940e54a388b ; expires = Sat , 02 Jan 2016 23 : 23 : 40 GMT ; path =/; domain = login . vk . com ; secure ; HttpOnly
Set — Cookie : remixq_2e867b206ef87a38a807699160223fc0 = ad7353f69ff8eb10e1 ; path =/; domain =. vk . com ; HttpOnly
Location : http : //m.vk.com/login?role=fasts=1to=__q_hash=2e867b206ef87a38a807699160223fc0
а я это получаю
http://m.vk.com/login?role=fasts=0dif=1 11.01.2015 в 00:29 .
Заблокирован
Регистрация: 24.11.2014
Сообщений: 721
ну да, выдает мне
Значит это и вернул сервер. И тут как не перехватывай, перехватишь то, что вернулось. Вангую. Сервер не только чистит куки, но и даёт редирект на нужную страницу с новыми кукамии, а ты редирект не делаешь.
Последний раз редактировалось WinCoder; 11.01.2015 в 07:28 .
Пользователь
Регистрация: 02.01.2015
Сообщений: 17
Значит это и вернул сервер. И тут как не перехватывай, перехватишь то, что вернулось. Вангую. Сервер не только чистит куки, но и даёт редирект на нужную страницу с новыми кукамии, а ты редирект не делаешь.
Вот что снифер выдает
POST /? act = login ip_h=7fdd3431a3310d668butf8=1 HTTP/1.1
Host : login . vk . com
User — Agent : Mozilla / 5.0 ( Windows NT 6.1 ; WOW64 ; rv : 34.0 ) Gecko / 20100101 Firefox / 34.0
Accept : text / html , application / xhtml + xml , application / xml ; q = 0.9 ,* /*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://m.vk.com/login
Cookie: remixlang=0; remixflash=16.0.0; remixscreen_depth=24; remixdt=0; remixseenads=0; audio_vol=22; remixrefkey=395c5a17fe8f77bda1; t=bf81fd891fe184ee666ac06a; remixstid=508608265_dad6b74159c19bc55d; remixmdevice=1366/768/1/!!-. ; remixtst=5fedbb9e; remixmdv=rdYMuFND9hak3cCR
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 36
email=12345pass=12345
HTTP/1.1 302 Found
Server: nginx
Date: Sun, 11 Jan 2015 10:47:29 GMT
Content-Type: text/html; charset=windows-1251
Content-Length: 0
X-Powered-By: PHP/3.10293
Pragma: no-cache
Cache-Control: no-store
P3P: CP=»IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT»
Set-Cookie: h=1; expires=Fri, 08 Jan 2016 03:46:09 GMT; path=/; domain=login.vk.com; HttpOnly
Set-Cookie: s=1; expires=Sun, 03 Jan 2016 16:08:35 GMT; path=/; domain=login.vk.com; secure; HttpOnly
Set-Cookie: l=251624135; expires=Fri, 08 Jan 2016 11:44:10 GMT; path=/; domain=login.vk.com; secure; HttpOnly
Set-Cookie: p=dce9ce4b626adbf0dd1bad0083a7061d398f185f1469a5bd1fe8b; expires=Sun, 17 Jan 2016 06:54:59 GMT; path=/; domain=login.vk.com; secure; HttpOnly
Set-Cookie: remixq_254b5b980f3649ef6a1b484fb09f4654=280424983471815195; path=/; domain=.vk.com; HttpOnly
Location: http://m.vk.com/login?role=fasts=1to=__q_hash=254b5b980f3649ef6a1b484fb09f4654
GET /login?role=fasts=1 WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/ *; q = 0.8
Accept — Language : ru — RU , ru ; q = 0.8 , en — US ; q = 0.5 , en ; q = 0.3
Accept — Encoding : gzip , deflate
Referer : http : //m.vk.com/login
Cookie : remixlang = 0 ; remixflash = 16.0.0 ; remixscreen_depth = 24 ; remixdt = 0 ; remixseenads = 0 ; audio_vol = 22 ; remixrefkey = 395c5a17fe8f77bda1 ; remixstid = 508608265_dad6b74159c19bc55d ; remixmdevice = 1366 / 768 / 1 /!!-. ; remixtst = 5fedbb9e ; remixmdv = rdYMuFND9hak3cCR ; remixq_254b5b980f3649ef6a1b484fb09f4654 = 280424983471815195
Connection : keep — alive
HTTP / 1.1 302 Found
Server : Apache
Date : Sun , 11 Jan 2015 10 : 47 : 29 GMT
Content — Type : text / html ; charset = windows — 1251
Content — Length : 20
Connection : keep — alive
X — Powered — By : PHP / 3.10293
Set — Cookie : remixq_254b5b980f3649ef6a1b484fb09f4654 = DELETED ; expires = Thu , 01 Jan 1970 00 : 00 : 01 GMT ; path =/; domain =. vk . com
Set — Cookie : remixq_254b5b980f3649ef6a1b484fb09f4654 = DELETED ; expires = Thu , 01 Jan 1970 00 : 00 : 01 GMT ; path =/; domain =. vk . com
Set — Cookie : remixsid = 25f00763efd6c710332af8fde7539f775f9aa0a723021406ebf33 ; expires = Sun , 17 Jan 2016 15 : 45 : 47 GMT ; path =/; domain =. vk . com
Set — Cookie : remixtemp_sid = DELETED ; expires = Thu , 01 Jan 1970 00 : 00 : 01 GMT ; path =/; domain =. vk . com
Pragma : no — cache
Cache — Control : no — store
P3P : CP = «IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT»
Location : /
Content — Encoding : gzip
———————————————————-
Источник: www.programmersforum.ru
Авторизироваться на vk.com с помощью Dart
Мне необходимо войти в аккаунт на vk.com через мое Flutter приложение (Без создания приложения в ВК и получения access_token). Я проанализировал запросы, которые делает браузер, и выяснил, что сначала необходимо заполнить формы: Значения и ключи находятся внутри html (name:value) :
А тут находится значение для ключа to (оно всегда равно aW5kZXgucGhw):
window.handlePageParams handlePageParams();addEvent(document, ‘click’, onDocumentClick);
Headers я взял из запроса, который сделал браузер (скопировал все, кроме cookie). Далее по нажатию кнопки «Войти» браузер делает POST запрос по адресу: https://login.vk.com/?act=login (который так же находится внутри html) и передает словарь вышеупомянутых параметров. В ответ приходит 302 код состояния http (т.е. redirect как я понял). Headers, полученные браузером и моим приложением почти совпадают, за исключением location. location в браузере : https://vk.com/login.php?act=slogins=1to=m=1 import ‘package:http/http.dart’ as http; import ‘dart:async’; Future login() async < Mapheaders = < ‘accept’: ‘text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9’, ‘accept-encoding’: ‘gzip, deflate, br’, ‘accept-language’: ‘ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7’, ‘cache-control’: ‘max-age=0’, //no cookies ‘referer’: ‘https://vk.com’, ‘sec-fetch-dest’: ‘document’, ‘sec-fetch-mode’: ‘navigate’, ‘sec-fetch-site’: ‘same-origin’, ‘sec-fetch-user’: ‘?1’, ‘upgrade-insecure-requests’: ‘1’, ‘user-agent’: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36′, >; String email=’+79999999999′; //email or phone String password=’0123456789’; http.Client client = http.Client(); try < http.Response uriResponse = await client.get(‘https://vk.com/’, headers: headers); // get params for POST request String html = uriResponse.body; String start = ‘parts = html.split(‘