Javascript-форум (https://javascript.ru/forum/)
-   Работа (https://javascript.ru/forum/job/)
-   -   JS и puppeteer. Мониторинг и управление POST\GET запросами (https://javascript.ru/forum/job/85107-js-i-puppeteer-monitoring-i-upravlenie-post%5Cget-zaprosami.html)

QuZ 08.04.2023 20:51

JS и puppeteer. Мониторинг и управление POST\GET запросами
 
Добрый день. Мне необходимо написать мониторинг сетевого трафика на JS с помощью puppeteer.
Скрипт работает в режиме браузера, и должен уметь управлять трафиком в режиме реального времени.
В данном скрипте должны быть реализованы следующие функции.
1) Чтение пост запросов. Пусть у нас будет массив из URL адресов, которые надо проверять. При поступлении post запроса, делаем проверку, принадлежит ли его URL заданному массиву, если да, тогда мы создаем массив, в который упаковываем - URL, Заголовк, Ответ и выводим в консоль.лог.
2) Отправка пост запросов от лица браузера. Он должен принимать массив вида (пункт1) и отправлять его, отслеживывать ответ и выводить в массиве вида (пункт 1) в консоль.лог
3) Обрабатывать гет запросы. (Правильно запрета) Примеры - если подгружается .png, тогда мы блокируем этот запрос, или если тип content-type - музыка\мп3, или url содержит ("_offer_")
4) Обрабатывать гет запросы. Правило разрешения (Пример - Если подгружается что-то с ссылки ...), тогда пропускаем.

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

П.с. Массив делаем ассциативный.

Так-же понадобится решить вопрос с куками, разрешить браузеру их принимать, записать в файл и при начале работы - использовать их (прочесть)

Дальнешие доработки - уже будем обсуждать после использования и сбора данных с помощью этого скрипта.
Спасибо.

Nexus 08.04.2023 21:51

1. Каким образом должна инициализироваться отправка запросов из п.2?
2. Пункт 4 лично я вообще не понял.

Ну и добавьте информацию о Вашем бюджете.

QuZ 08.04.2023 22:15

Цитата:

Сообщение от Nexus (Сообщение 551450)
1. Каким образом должна инициализироваться отправка запросов из п.2?
2. Пункт 4 лично я вообще не понял.

Ну и добавьте информацию о Вашем бюджете.

По Вашему первому вопросу. На данный момент - это будет предподготовленный шаблон, в котором буду генерировать отладочные запросы или отсылать шаблонные заготовки. В дальнейшем или на JS напишу обработчики по их генерации или просто будут приходить извне в виде запроса, который надо будет распарсить (на заголовок и тело) и отправить.

По второму Вашему вопросу. Все просто. Первоначально проверяем правила разрешения, а в елсиф (образно), case и т.д. делаем уже проверку по черному списку (пункт 3). Если Пакет удволетворяет правилам обработки по белому списку, то по черному уже не проверяется.

По бюджету - я первый раз сталкиваюсь с JS языком. Если есть предложения - то напишите в личку.


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