Подтвердить что ты не робот

Замените удаленный файл JavaScript на локальную копию отладки с помощью Greasemonkey или userscript

При отладке клиентского приложения, использующего бэкэнд Google, я добавил некоторые варианты отладки функций и вставил их с помощью редактора средств разработки Chrome script.

Однако с этим подходом существует ряд ограничений, во-первых, что редактор, похоже, не всегда работает с де-минифицированными файлами, а когда JS файл имеет длину 35K, это проблема.

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

Я хотел бы заменить удаленный файл javascript.js на свою собственную локальную копию, предположительно используя некоторое регулярное выражение для имени файла или любую другую стратегию, я рад использовать либо Firefox, либо Chrome, если бы это было проще, чем другой.

4b9b3361

Ответ 1

Таким образом, в основном, как идентифицировал @BrockAdams, в зависимости от требований существует несколько решений этих проблем, и они следуют либо из 1 из 2 методов.

  • API-интерфейс браузера.
  • Перехват на основе прокси-сервера.

API-интерфейс браузера API. Оба браузера Firefox и Chrome поддерживают расширения браузера, которые могут использовать API-интерфейсы платформы для регистрации обработчиков событий для "onbeforeload" или "onBeforeRequest" в случае firefox и chrome соответственно. В настоящее время хром API являются экспериментальными, поэтому эти инструменты, скорее всего, будут лучше развиваться под firefox. 2 инструмента, которые определенно делают что-то вроде того, что требуется, AdBlock plus и Jsdeminifier, оба из которых имеют исходный код.

Ключевым моментом для этих 2 приложений firefox является то, что они перехватывают веб-запрос до того, как браузер получит его на себя и оперирует с другой стороны этапа HTTP/https encrpytion, следовательно, он может видеть дешифрованный ответ, однако, как указано в в другом сообщении, что они ничего не делают, хотя jsdeminifier был очень полезен, я не нашел плагин firefox, чтобы делать именно то, что я хотел, но я вижу из этих предыдущих плагинов, что это возможно как с Firefox, так и с хром. Хотя они на самом деле не делают трюк по мере необходимости.

Перехват перехвата на основе прокси-сервера Это, безусловно, лучший вариант в простой HTTP-среде, есть целая куча прокси-серверов, таких как pivoxy, fiddler2, прокси-сервер Charles Web HTTP и, предположительно, некоторые из них, на которые я не смотрел конкретно такие, как snort, которые поддерживают некоторую фильтрацию.

Простейшим решением для себя было foxyproxy и privoxy на firefox, а также настроить user.action и user.filter, чтобы обнаружить URL-адрес страницы, а затем применить фильтр, который поменял оригинальный тег src, для моего собственного один.

Случай https. proxy vs plugin Когда запрос https, прокси не может видеть URL-адрес запроса или тело ответа, поэтому он не может делать классный обмен. Однако есть один вариант для тех, кто любит общаться со своим браузером. И это посредник SSL-посредника. Основным решением этой проблемы является Charles Web HTTP proxy. В основном, как это работает, когда ваш браузер делает запрос на удаленный HTTPS-сервер, прокси-сервер ssl перехватывает запрос и с IP-адреса сервера генерирует сертификат сервера "на лету", который он подписывает со своим собственным корневым центром сертификации, и отправляется обратно в браузер. Браузер явно жалуется на самозаверяющий сертификат, но здесь вы можете выбрать установку корневого сертификата CA ssl proxy в браузере, одурманить браузер и разрешить прокси-серверу ssl человеку посередине и произвести замену и фильтры на исходном ответе тела.

Альтернативный ролик собственного расширения хрома Я решил пойти со своим собственным хромовым расширением, которое я планирую сделать доступным. В настоящее время он очень жестко привязан к моим собственным требованиям, но он работает очень хорошо, даже для запросов https, и еще одно преимущество в том, что решение для плагинов для браузера может быть более тесно интегрировано с инструментами разработчика браузера.

Ответ 2

Есть еще один инструмент Requestly - расширение Chrome, которое можно использовать для перезаписи URL-адресов и замены ваших производственных библиотек локальными размещенными библиотеками с очень простой настройкой и очень дружественным интерфейсом.

Посмотрите на это:

введите описание изображения здесь

PS: Я знаю, что на это был дан ответ, но я все еще ответил на это, учитывая, что это будет очень полезно для будущих читателей.