Можно ли получить доступ к сеансу входа в систему с помощью Headless Chrome, если у вас есть контроль над этим сеансом входа?

Мне нужно записаться на прием на сайте. Эти встречи выпускаются спорадически и забронированы быстро. Чтобы даже увидеть доступное время встречи, вам нужно войти в систему и пройти reCaptcha. Если бы я хотел написать скребок с помощью Headless Chrome, чтобы постоянно очищать сайт и уведомлять меня о новой встрече, каждый раз после входа в систему требовалось бы пройти reCaptcha, что, по крайней мере, ненулевая сложность.

Лучшим подходом (я подумал) было бы один раз войти в систему вручную, получить файлы cookie сеанса, а затем загрузить их в Headless Chrome, прежде чем делать запрос непосредственно на страницу времени встречи. Сервер увидит мой запрос, увидит мои файлы cookie сеанса и ответит, как если бы сеанс, зарегистрированный вручную, был обновлен. Это почти так же, как указано в ответе на этот вопрос StackOverflow: как управлять сеансом входа в систему через безголовый хром?

Но это не работает, и я не могу понять, почему. Каждый раз меня перенаправляют прямо на страницу входа. Я пробовал в Chrome и Firefox, а также на нескольких других веб-сайтах, требующих входа в систему (Facebook, Reddit и т. д.).

Как эти серверы могут отличить исходного клиента от клиента, использующего скопированные файлы cookie, если файлы cookie — это то, что серверы используют для идентификации клиентов в первую очередь?

Точные шаги для воспроизведения:

  1. Войдите на сайт по вашему выбору в Chrome, скажем, Facebook.
  2. Экспортируйте файлы cookie в буфер обмена с сайта с помощью расширения EditThisCookie
  3. Запустите окно в режиме инкогнито (чтобы сбросить активные файлы cookie) и импортируйте эти сеансовые файлы cookie с тем же удобным расширением.
  4. Перейдите к целевому URL-адресу за формой входа.
  5. Получить перенаправление.
  6. Расстроиться.

person Monty Evans    schedule 21.05.2018    source источник