Таким образом, как определил @BrockAdams, в зависимости от требований существует несколько решений этих типов проблем, и они следуют одному из двух методов.
- API браузера switcharoo.
- Перехват на основе прокси.
API браузера switcharoo. Firefox и Chromeподдержка расширений браузера, которые могут использовать API-интерфейсы конкретной платформы для регистрации обработчиков событий для «onbeforeload» или «onBeforeRequest» в случае Firefox и Chrome соответственно.API-интерфейсы Chrome в настоящее время являются экспериментальными, поэтому эти инструменты, вероятно, будут лучше разработаны под Firefox.2 инструмента, которые определенно делают что-то вроде того, что требуется: AdBlock плюс и Jsdeminifier , оба из которых имеют доступный исходный код.
Ключевой момент для этих двух приложений Firefoxзаключается в том, что они перехватывают веб-запрос до , когда браузер получает его в свои руки, и работают на другой стороне этапа шифрования http / https, следовательно, могут видеть расшифрованный ответ, как указано в .другой пост о том, что они не делают всего этого, хотя jsdeminifier был очень полезен, я не нашел плагин Firefox, чтобы делать именно то, что я хотел, но я вижу из этих предыдущих плагинов, что это возможно как с Firefox, так и с Chrome .Хотя на самом деле они не справляются со своими задачами.
Перехват на основе прокси. Это, безусловно, лучший вариант в простой среде HTTP, есть целый ряд прокси, таких как pivoxy., fiddler2 , HTTP-прокси Charles Web и, вероятно, некоторые из них, на которые я не обращал особого внимания, например snort, поддерживающий какую-либо фильтрацию.
Самым простым решением для меня были foxyproxy и privoxyна firefox и настройте user.action и user.filter для определения URL страницы, а затем для применения фильтра, который заменяет оригинальный тег src, на мой собственный.
случай https.proxy vs plugin Когда запрос https, прокси не может видеть URL-адрес запроса или тело ответа, поэтому он не может выполнять классную замену.Однако есть один вариант для тех, кто любит возиться с браузером.И это посредник SSL посредник.HTTP-прокси Charles Web является основным решением этой проблемы.По сути, он работает так, что когда ваш браузер отправляет запрос на удаленный HTTPS-сервер, ssl-прокси перехватывает запрос и из ip-адреса сервера на лету генерирует сертификат сервера, который он подписывает своим собственным корневым CA,и отправляет обратно в браузер.Браузер, очевидно, жалуется на самоподписанный сертификат, но здесь вы можете установить в браузере сертификат корневого CA ssl-прокси, сбивая с толку браузер и позволяя ssl-прокси работать в середине и производить замены и фильтры в необработанном ответе.body.
Альтернатива накатить свое собственное расширение Chrome Я решил пойти накатить свое собственное расширение Chrome, которое я планирую сделать доступным.В настоящее время он находится в жестко заданном для меня состоянии, но работает довольно хорошо, даже для запросов https, и еще одно преимущество заключается в том, что решение для подключаемых модулей браузера может быть более тесно интегрировано с инструментами разработчика браузера.