Как получить в заголовке Header: Authorization с другого сайта?

Есть 3 ссылки (сайта):
1. Мой сайт: my_site.ru
2. Есть 2 сайт: autoostrov.by
3. Есть 3 сайт: parts-catalogs.com

Мне нужно на моем сайте (my_site.ru) получить значение в заголовке запроса (header: authorization), который сайт 2 (autoostrov.by) делает запрос на 3 сайт (parts-catalogs.com).

То есть, переходим по ссылке: https://autoostrov.by/pc/#/catalogs?catalogId=audi и если открыть Консоль -> Сеть видно что данный сайт (autoostrov.by) делает запрос на 3 сайт (а именно по ссылке GET запрос - https://api.parts-catalogs.com/v1/catalogs/audi/models/), и в запросе 2 сайта на 3 сайт в заголовках виден Authorization, показал это на фото:

Как получить в заголовке Header: Authorization с другого сайта?

Причем этот заголовок меняется каждые 20-30 минут.

Собственно сам вопрос. Как мне со своего сайта 1, получить данный заголовок Authorization (ключ) который сайт 2 делает запрос на сайт 3?

Дополнительно:

Что значит "со своего сайта"? Как вы процесс представляете себе?

  • Алексей Ярков, мне нужно как то получить с 2 сайта этот самый заголовок, вот и спрашиваю как вообще это можно сделать. Ладно если бы он был статичным, так он меняется какое то N-ое время.

    То есть я захожу на свой сайт, и как то с помощью PHP или JS я не знаю, нужно со 2 сайта получить этот самый ключ

  • Алексей Ярков, оказывается этот "ключ" закодированный base64_encode скорее всего, т.к. при декодировании я получил вот это:

    Как получить в заголовке Header: Authorization с другого сайта?

    Эти все входные данные я вроде как все могу получить тем или иным способом, но как или с помощью чего закодировать и что должно быть в кодировании, пока не понял, потому что base64_decode выдает следующее (в конце что то не понятное):

    Как получить в заголовке Header: Authorization с другого сайта?

  • Алексей Ярков, теперь понял что в конце это какое то секретное слово, вряд ли его получится разгодать. Тогда остается вариант как то получить этот заголовок Authorization с 1 сайта, который со 2 сайта посылается на 3 сайт.... Но как, решения никак не могу найти. Возможно его просто и не существует
  • nshafarenko, как вариант через puppeteer и достать его через request interception
  • Ответы:

    За генерацию токена отвечает функция updateToken из файла https://gui.parts-catalogs.com/v2/bundle.js разберись как она работает и сможешь повторить, только думаю ты осознаешь, что это будет просто воровство?

    У них API платное: https://www.parts-catalogs.com/api/

    • Я разобрался еще вчера как работает updateToken из их js файла. Используется Json Web Token через функцию HMACSHA256, но 3 условие этой функции является "секретный код / фраза / ключ" который я не смог разгодать как создается... Из этого длинного ключа, разделением является . (точка), и там 3 аргумента получается - header, payload - это легко сгенерировать, но вот 3 аргумент это secret..
    • nshafarenko, см. функцию getJWT которая получает секреты с https://gui.parts-catalogs.com/api/start и потом дешифровывает эти секреты по прописанному алгоритму, все что нужно тебе лежит в переменной data.
    • zkrvndm, да я смотрел до этого, и сейчас смотрю, делаю тесты, код под копирку их скопировал, но по итогу все равно секрет пустая строка

      Как получить в заголовке Header: Authorization с другого сайта?

    • nshafarenko, очевидно, что то не так делаешь, что то упускаешь. Правда тут я уже не помогу, не готов вникать.

     

    Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.

     

      • Как получить в заголовке Header: Authorization с другого сайта?Есть ответ
      • 07.04.2024
      Ответить

      Для получения заголовка Authorization с другого сайта, вам понадобится использовать CORS (Cross-Origin Resource Sharing). CORS - это механизм, который позволяет веб-страницам запрашивать ресурсы с других доменов, не нарушая политику безопасности браузера.

      Чтобы получить доступ к заголовку Authorization с другого сайта, вам нужно убедиться, что сервер, с которого вы пытаетесь получить этот заголовок, разрешает такие запросы. Для этого сервер должен отправлять специальные заголовки CORS в ответ на запросы от другого домена.

      Пример настройки сервера для разрешения доступа к заголовку Authorization с другого сайта:

      header("Access-Control-Allow-Origin: *");
      header("Access-Control-Allow-Headers: Authorization");

      Этот код отправит заголовки Access-Control-Allow-Origin и Access-Control-Allow-Headers в ответ на запросы от других доменов, разрешая доступ к заголовку Authorization.

      Однако, стоит помнить, что разрешение доступа к заголовку Authorization с другого сайта может быть небезопасным, так как этот заголовок может содержать конфиденциальные данные (токены, пароли и т. д.). Поэтому перед разрешением доступа к этому заголовку, убедитесь, что ваш сервер обеспечивает должную защиту и безопасность.

      Таким образом, для получения заголовка Authorization с другого сайта, вам необходимо настроить сервер таким образом, чтобы он разрешал запросы с других доменов и отправлял специальные заголовки CORS.

    Оставить комментарий