Как можно перехватить функцию javascript? Здравствуйте, я новичок в программировании js. Возникает вопрос, js код выполняется в браузере так, значит можно перехватить определенные функции и подменить ответ? То есть существует некий сайт который с помощью js берет какую-нибудь информацию о моем браузере(user agent, шрифты, список плагинов итд). Озночает ли это, что я могу создать свой скрипт и заставить мой браузер перехватывать данные запросы и подменять результаты. Например пусть перехватывают user agent , отправляют на сервер и исходя из этого дальше отправляют тех кто использует опера на один сайт, тех кто мозиллу на другой(либо уже другой js на сайте выполняет сортировку, без задействования сервера). Возможно ли реализовать перехват этой функции и подмены, чтобы с мозиллы отправился запрос с результатом что мол опера и сервер отправил меня на сайт для оперы. Если да, то ткните куда копать(писать свой плагин для этих целей или есть готовый плагин который будет внедять мой js-перехватчик на определенных сайтах)
P. S. пример грубый и извращенный, знаю что можно подменить UA плагинами итд, но интересует именно возможность решения подобных задач, перехватом и подменой js.

21 Авг 2019 в 06:27
235 +1
0
Ответы
1

Да, можно перехватить и изменить функции JavaScript на странице с помощью различных методов.

Один из способов - использовать расширения для браузера, такие как Tampermonkey или Greasemonkey. Эти расширения позволяют вам встраивать свой собственный JavaScript код на определенные сайты и выполнять различные действия, включая перехват и изменение функций.

Если вы хотите перехватывать определенные функции на странице и изменять результаты запросов, вам нужно использовать методы перехвата и изменения функций, такие как Object.defineProperty или Proxy.

Например, вы можете перехватить функцию, которая отправляет запрос на сервер, и изменить результат запроса:

const originalFetch = window.fetch;
window.fetch = function() {
// перехватываем запрос
const result = originalFetch.apply(this, arguments);
// изменяем результат запроса
if (arguments[0] === '/user-agent') {
return new Response("Opera", {status: 200});
}
return result;
}

Это простой пример, но он показывает, как можно перехватить и изменить определенные запросы на странице.

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

20 Апр в 13:18
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 548 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир