Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Понять как генерируется адрес ссылки (https://javascript.ru/forum/misc/79994-ponyat-kak-generiruetsya-adres-ssylki.html)

Foster08 15.04.2020 04:35

Понять как генерируется адрес ссылки
 
Вложений: 2
Здравствуйте. Помоги разобраться что называется "откуда ноги ростут" :) Есть страничка https://www.twitch.tv/ctasdasd (вообще любой канал на твиче в режиме трнсляции LIVE) эта страница при просмотре видео отправляет ч-з какой-то не понятный мне скрипт данные вот сюда https://video-edge-0ff65e.pdx01.abs....LABLABLABLA.ts (где словом BLA я заменил исходные данные, т.к. не понимаю какая информация о моём аккаунте содержится в этих зашифрованных данных)

Я с charles web debugging proxy вдоль и поперек облазил все соединения и загрузки с начала открытия этой страницы. В отладчике в опере (ктрл+шифт+ай)искал хоть намек на адрес 0ff65e.pdx01.abs.hls.ttvnw.net - не нашёл ниче путнего кроме этого (см. аттач). Помогите разобраться каким участком когда генерируется URL https://video-edge-0ff65e.pdx01.abs.hls.ttvnw.net и в каком формате и что за данные закодированы данные у её patch /v1/segment/Cv0WFNu_LYY-




PS: Обращаю ваше внимание на то, что сайт работает с 2-мя очень похожими доменами:
https://video-edge-0ff65e.pdx01.abs.hls.ttvnw.net - нужный мне домен, сюда передаётся информация.
https://video-edge-c55498.fra02.abs.hls.ttvnw.net - patch до файла такой же как и у верхней ссылке, но по этому адресу подгружается видео при просмотре стрима. Он меня не интересует в данный момент

laimas 15.04.2020 04:37

Сервер получает параметр запроса и делает перенаправление с учетом если запрос "легален".

Foster08 15.04.2020 04:44

Здравствуйте. Пожалуйста, добавьте в свой ответ больше материального смысла а не теории (конкретные выдержки из кода или http пакеты). Я не нашёл в исходном коде информации о переменных и функции которая генерирует этот УРЛ.

laimas 15.04.2020 04:52

Да нет никакой теории здесь. Допустим, сервер будет отдавать картинку по запросу с неким параметром, которая находится по адресу "А". Если обратиться напрямую по этому адресу, то сервер определит, что запрос не содержит параметра и выдаст статус 404. А вот запрос с параметром сервер проанализирует и перенаправит пользователя на адрес "А" и он таки получит эту картинку.

Если при этом запросе проанализировать заголовки сервера, то это перенаправление в них будет отражено.

Foster08 15.04.2020 05:04

Вы не совсем верно поняли то, о чем я спрашиваю :) Смотрите, меня не интересует вопрос валидации получаемой \ передаваемой информации. Меня интересует где в исходниках скриптов на данной странице содержится javascript-код который генерирует урл https://video-edge-0ff65e.pdx01.abs....LABLABLABLA.ts т.к. я тупо снифером смотрел все пакеты и не нашёл в body request / response ни намека на video-edge-0ff65e.pdx01.abs.hls.ttvnw.net
Просьба: Ткните меня пожалуйста носом, на участок кода который генерирует ссылку выше, т.к. в открытом виде в http(s), WebSocket - пакетах её нет!

laimas 15.04.2020 05:15

Цитата:

Сообщение от Foster08
Меня интересует где в исходниках скриптов на данной странице содержится javascript-код который генерирует урл

Нигде, этого и не нужно, то есть, если сервер отдает некий контент по условию, то "прятать ключи" этих условий на клиенте нет смысла.

Сервер может отдавать содержимое из закрытого от прямого доступа каталога. Только сервер с его правами может получить эти данные и отдать клиенту. При этом есть несколько способов, например:

1) сформировать прямую временную ссылку, которая будет недействительна по истечению времени Т.

2) считать содержимое в память и отдать клиенту программно.

3) перенаправить клиента по адресу.

Я не знаю на чем работает интересующий вас сервер, но в случае РНР, например, по адресу domain/abc производится запрос с параметром abc. Сервер анализирует именно параметр запрос (abc), если все ОК, то перенаправляет клиента на адрес domain/kino.mp4

header('Location: domain/kino.mp4')


и до этого момента клиент вообще не подозревает о существовании такого адреса. Вообще механизмов (способов) такого обмена множество.

Foster08 15.04.2020 05:28

Извините, возможно я для вас глупость сейчас скажу, но я пытаюсь провести что-то наподобие реверс инжиниринга. Нигде в перехваченных снифером пакетах (а они не зашифрованы и для моего анализа предстают в открытом читаемом виде) нет информации ни в открытом ни в зашифрованном виде о функции или данных из которых получается интересующая меня ссылка. В моём случае нет никакого редиректа ч-з хидер http или что-то похожего.

Ответ по вашим предложениям:
1)Интересующая меня ссылка нигде не фигурирует в response сервера.
2)Не понял если честно.
3)Опять же говорю, ссылка "собирается" на стороне клиента. В отладчике браузера я нашёл фрагмент кода (см. скрин) который возможно генерирует интересующую меня ссылку, но понять из каких переменных (и что за данные содержатся в этих переменных) эта функция конструирует интересующую меня ссылку мне не удалось.

laimas 15.04.2020 05:36

Цитата:

Сообщение от Foster08
Интересующая меня ссылка нигде не фигурирует в response сервера.

Анализировать нужно не тело ответа, а заголовки, и если в данном случае действует механизм перенаправления, то заголовки, которые отдает сервер, это обязательно отразят - статус и адрес.

Цитата:

Сообщение от Foster08
Опять же говорю, ссылка "собирается" на стороне клиента

Вы уверены в этом? Если да, то в отладчике анализ запроса покажет таковую. Клиент конечно может и формировать некие параметры запроса, а вот что за этими параметрами скрывается (данные или реальные адреса) клиенту знать и не обязательно, а может быть и нельзя.

Цитата:

Сообщение от Foster08
Не понял если честно

Есть каталог, прямой доступ к которому запрещен, то есть на такую попытку север вернет статус 403. А программно, это - сервер считывает в память (буфер), из которого затем отдает клиенту. Я могу и код такового механизма показать, но думаю, что смысла в этом нет. А с таким явлением (механизмом) в сети, я уверен, вы сталкивались, и не раз.


Часовой пояс GMT +3, время: 22:20.