Google reCAPTCHA удаляет изображение запроса, прежде чем я могу его получить - PullRequest
0 голосов
/ 29 сентября 2019

Я пытаюсь загрузить и отобразить reCAPTCHA (v2) noscript-fallback в Emacs.Обычно это reCAPTCHA встроено в веб-страницу с iframe, и это все.В Emacs мне нужно загрузить его вручную, и я запускаю Google, чтобы удалить изображение запроса, прежде чем я смогу GET.

Веб-страница, встроенная в iframe, представляет собой просто простую HTML-страницу снет JavaScript, некоторые входные данные формы и тег <img>, содержащий изображение вызова.Поэтому, конечно же, после GET на главной странице reCAPTCHA я нахожу тег <img>, нахожу его атрибут src и отправляю еще один запрос GET, чтобы получить изображение запроса.Мне это кажется достаточно простым и выглядит точно так же, как и мой веб-браузер при загрузке iframe, за исключением того, что по какой-то причине я возвращаю 410 Gone вместо изображения вызова.Что я не делаю из-за того, что веб-браузер заставляет Google удалить мое изображение вызова, прежде чем я смогу его получить?

Я просматривал заголовки HTTP.Я видел Connection: keep-alive и проверил, что Emacs отправляет этот заголовок и поддерживает соединение, благодаря некоторым журналам отладки.Мои Referer также верны и идентичны тем, которые отправляет браузер (в противном случае я получаю «Malformed Request»).Браузер не отправляет куки.Я даже пытался подделать User-Agent, чтобы он выглядел как тот, который посылает мой браузер, но безуспешно.


Вот заголовки, с которыми я получаю первый HTML reCAPTCHA:

GET /recaptcha/api/fallback?k=6Ldp2bsSAAAAAAJ5uyx_lx34lJeEpTLVkP5k04qc HTTP/1.1
MIME-Version: 1.0
Connection: keep-alive
Extension: Security/Digest Security/SSL
Host: www.google.com
Accept-encoding: gzip
Accept: */*
User-Agent: URL/Emacs Emacs/27.0.50 (OpenStep; x86_64-apple-darwin17.7.0)
If-modified-since: Thu, 26 Sep 2019 17:25:56 GMT
Referer: https://boards.4chan.org

Вот заголовки, которые я отправляю с Emacs для получения изображения:

GET /recaptcha/api2/payload?c=03AOLTBLRh0dbopXIBUBlchIy9LYHaRmKU3xrg0WmXXlAIyYYaMma-90TuVcsuxB7Awm3upjlWVEDpDOeKZkRCBcj2aFkgb9Z7scOdvUAaQYXqFixF5kU2tFUi1RLAWqv5fYs8OGrUAaVaxmFKv4FRoxsFydMh1dsqP5jMuy-W2uou7wmcYPrwXb_27tDe-GIn7bSLq5uaL_y9T_5yi5XrmPH7b8LdJdqBKuMFp-WzrwcBoTA_1mO1VHmzo4igcvltBnBwEKZ-j-wlKHaeuFY_ZGQM2ihbXw9Qz52L88t74-xfvfI9UM_mewi0-sNzuTaEaeRreE397i7tYY7tRIcHKYUyiOP9PNdVe5LLT9zZbiOHXcxnuZC5u68HqAO0WsVesmjjERrRkIM3&k=6Ldp2bsSAAAAAAJ5uyx_lx34lJeEpTLVkP5k04qc HTTP/1.1
MIME-Version: 1.0
Connection: keep-alive
Extension: Security/Digest Security/SSL
Host: www.google.com
Accept-encoding: gzip
Accept: */*
User-Agent: URL/Emacs Emacs/27.0.50 (OpenStep; x86_64-apple-darwin17.7.0)
Referer: https://www.google.com/recaptcha/api/fallback?k=6Ldp2bsSAAAAAAJ5uyx_lx34lJeEpTLVkP5k04qc

И вот что я получаю обратно:

HTTP/1.1 410 Gone
Content-Type: text/html; charset=UTF-8
Date: Thu, 26 Sep 2019 17:26:21 GMT
Expires: Thu, 26 Sep 2019 17:26:21 GMT
Cache-Control: private, max-age=0
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Server: GSE
Alt-Svc: quic=":443"; ma=2592000; v="46,43"
Transfer-Encoding: chunked

Вот примеры заголовков, которые браузерможет отправлять и успешно извлекать HTML и изображение с помощью (не разрешается встраивать изображения с новой учетной записью):

Заголовки, отправленные для получения HTML-кода reCAPTCHA при обычной загрузке iframe

Заголовки, отправленные для получения изображения запроса при обычной загрузке iframe

Заголовки, отправленные при использовании Javascript и XMLHttpRequest для ручного получения HTML и изображения reCAPTCHA (заголовки одинаковы для обоихзапрос на получение HTML и запрос на получение изображения)

Я пытался изменить Referer на https://boards.4channel.org и добавить заголовок Origin в mimick XMLHttpRequest, ночто еще естьмне ответили 410.Я не понимаю, что еще может изменить ситуацию, и я надеюсь, что кто-то здесь, по крайней мере, может иметь идею, которой я мог бы заняться.

...