Чем пошарить в инете

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

zub писал(а):lg_h

Они их генерируют каждый раз сервером и хранят в переменных сессии.
Поэтому браузер при наличии сессии повторно не генерирует lg_h и он там одинаковый,
а без браузера, каждый раз генерируется новый lg_h, т.к. отсутствует сессия.

В общем на это можно забить. Делаете запрос к ВК и их ответ вставляете в lg_h, либо нужно создавать сессию
(я не делал сессий на синапсе, но возможно он умеет. если нет, то нужно подключить лазарусовский браузер или хромиум ).
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

vitaly_l
С этим вроде разобрался. куки, lg_h, ip_h - всё работает

Добавлено спустя 1 минуту 21 секунду:
>>Сниф не помагает? Уж не в браузере его тыкнули?
В браузере

Добавлено спустя 1 час 24 минуты 48 секунд:
а fcl-web действительно весел))
Тамашняя EncodeURLElement в случае пустого входа может вернуть "мусор" у меня стабильно возвращается предидущий ее результат(( +Бывают вылеты в самый ответственный момент((
Куда не ткни - везде приходится писать багрепорты((
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Сообщение pupsik »

а fcl-web действительно весел))
да ладно :D

п.с.
советую пользоваться не встроенным в браузер. Меньше расширений перепробуете. Плюс: только в мозиле встречал более менее адекватный (но не всё понимающий).
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

>>советую пользоваться не встроенным в браузер
сколько наводящих вопросов нужно чтобы получить конкретное название?

Код: Выделить всё

program vkerr;

{$mode objfpc} {$H+}

uses classes,fphttpclient;

var
  client:TFPHTTPClient;
  Response,Params:TStringList;

begin
  client:=TFPHTTPClient.Create(nil);
  client.AllowRedirect:=True;
  Response:=TStringList.Create;
  Params:=TStringList.Create;

  Params.Add('_origin=https://vk.com');
  client.FormPost('https://login.vk.com/',Params,Response);

  client.Free;
end.

Этот EReadError баг или нет? Я конечно понимаю что исключения надо обрабатывать, но почему ошибка чтения из потока? а не чтото более приличное в виде таймаута или закрытия соединения?
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

В свази с сыростью fcl-web свалил на synapse. Стало попонятней, но тутже наступил в еще одну кучу чудес((
Вкраце: при первом обращении вк ставит куки, например:

Код: Выделить всё

Set-Cookie: remixlang=0; expires=Sun, 09 Sep 2018 04:34:15 GMT; path=/; domain=.vk.com
Set-Cookie: remixlhk=c85015b01c8afee497; expires=Sun, 16 Sep 2018 21:30:21 GMT; path=/; domain=.vk.com
Set-Cookie: remixlhk=852d6ab9a86b89d501; expires=Tue, 04 Sep 2018 03:48:52 GMT; path=/; domain=.vk.com

Причем remixlhk 2 раза с разным сроком валидности, причем второй всегда срок короче, а первый длинее. Я предположил что браузер берет самый длинный (который всегда первый), а синапс всегда переписывает кук и использует последний, всегда невалидный. Порывшиись в исходниках синапса - так оно и оказалось. Синапс на дату забивает - в случае одноименных куков запоминается последний.
Я лентяй и парсить дату мне тоже лень, добавил строчку в синапс чтоб одноименные куки не перезаписывались и использовался первый.
И что бы вы думали? правильно!

Код: Выделить всё

Set-Cookie: remixlang=0; expires=Thu, 06 Sep 2018 07:56:04 GMT; path=/; domain=.vk.com
Set-Cookie: remixlhk=2c1674b2d990877009; expires=Tue, 11 Sep 2018 22:42:00 GMT; path=/; domain=.vk.com
Set-Cookie: remixlhk=54d7aeeb6a76f414d6; expires=Thu, 20 Sep 2018 11:32:47 GMT; path=/; domain=.vk.com

Теперь первый всегда короче, второй длиннее. Как эта сучка узнает что я забиваю на дату и всегда обманывает меня? никаких других записей куков нет, придется делать сортировку по дате((
Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

zub писал(а): Как эта сучка узнает что я забиваю на дату и всегда обманывает меня?

Очевидно при чтении, она всё же проверяет.

А можно код снифа, который вы поставили на браузер? Эта часть меня заинтересовала, т.к. хочется посмотреть, что там видно.
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

opera + расширение Web Sniffer, не очень удобно, но пока что надобилось - показывает
Очень весело оказалось узнать что fpc (или я?) не умеет распарсить строку вида '11 Sep 2018 22:42:00' в TDateTime - может ктонить меня научит как это делается стандартными функциями без костыликов которыми обошелся я?

Добавлено спустя 1 час 10 минут 50 секунд:
В браузере на момент выполнения пост запроса на https://login.vk.com/?act=login имеется уже куча куков:
t=afc9fcb2bf63e80d4dd8919; remixlang=0; remixlhk=b53b8b8452dfa8b2f; remixflash=26.0.0; remixscreen_depth=24; remixdt=7200

у меня же только remixlang и валидный remixlhk. откуда браузер взял остальное?
Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

zub писал(а):откуда браузер взял остальное?

Каждая хрень, включая подгружаемые скрипты и картинки - может прописывать куки или отслеживать ваши действия на сайте. Синапс не подгружает всякие хрени, соответственно они не прописывают куки.
zub писал(а):11 Sep 2018 22:42:00

не знаю, но проще заменить " Sep " на "-09-" и парсить стандартным strToDate и т.п.
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

>>Каждая хрень, включая подгружаемые скрипты и картинки - может прописывать куки или отслеживать ваши действия на сайте. Синапс не подгружает всякие хрени, соответственно они не прописывают куки.
Это понятно, но должен быть способ отследить откуда что берется.
Поставил noscript - теперь браузер не может залогиниться в вк, но кука t=afc9fcb2bf63e80d4dd8919 чудесным образом появляется на входе пост запроса авторизации.

>>не знаю, но проще заменить
такой костыль и сделал, но жаль потраченых 2х часов на выяснение что все эти mmm и mmmm не работают

Добавлено спустя 3 минуты 13 секунд:
Нет, браузер с носкриптом логинится, просто не редиректит автоматом на страницу. вбил адрес руками - попал на страницу
Откуда взялось t=afc9fcb2bf63e80d4dd8919 ?? вся загвоздка видимо в нем
Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

zub писал(а):Откуда взялось t=afc9fcb2bf63e80d4dd8919 ??

Вы отключили JS, и перестали создаваться куки которые создаются силами JS.
Но ещё остались серверные куки, в смысле команду браузеру даёт сервер.
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

я вижу иих в снифере, t там нет

Добавлено спустя 1 минуту 14 секунд:
и синапс умеет такие куки
Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

zub писал(а):t

Удалите все куки, перед тестом. Возможно и t исчезнет.
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

))
то что его нет вначале наверно значит что я изначально всё удаляю
Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

zub писал(а):всё удаляю

у меня нет куки t на VK.
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

в итоге его нет, но он есть в пост запросе на логин. проверь
Ответить