Básicamente, como se identificó @BrockAdams, hay un par de soluciones para este tipo de problemas según los requisitos, y siguen uno de dos métodos.
- la API del navegador switcharoo.
- La interceptación basada en proxy befiddlement.
la API del navegador switcharoo. Tanto Firefox como Chrome admiten extensiones de navegador que pueden aprovechar las API específicas de la plataforma para registrar manejadores de eventos para "onbeforeload" o "onBeforeRequest" en el caso de Firefox y Chrome, respectivamente. Las API de Chrome son actualmente experimentales, por lo tanto, es probable que estas herramientas estén mejor desarrolladas en Firefox. 2 herramientas que definitivamente hacen algo como lo que se requiere son AdBlock plus y Jsdeminifier, ambos con el código fuente disponible.
El punto clave para estas 2 aplicaciones Firefox es que interceptan la solicitud Web antes el navegador se pone sus manos en él y operar en el otro lado del escenario encrpytion HTTP/HTTPS, por lo tanto, se puede ver la respuesta descifrado, sin embargo, como se identificó en the other post que no hacen todo, aunque el jsdeminifier fue muy útil, no encontré un complemento de Firefox para hacer exactamente lo que quería, pero puedo ver de esos plugins anteriores, que es posible con firefox y Chrome. Aunque en realidad no hacen el truco como se requiere.
El proxy de intercepción basada befiddlement Esta es sin duda la mejor opción en un entorno HTTP plano, hay manojo entero de poderes como pivoxy, fiddler2, Charles proxy HTTP Web, y es de suponer algunos que yo no miro específicamente como snort que admite filtrado de algún tipo.
La solución más simple para mí fue foxyproxy y privoxy en firefox, y configuré user.action y user.filter para detectar la url de la página, y luego para aplicar un filtro que reemplazó la etiqueta src original, para mi propio.
El caso https. proxy vs plugin Cuando la solicitud es https, el proxy no puede ver la url de la solicitud o el cuerpo de la respuesta, por lo que no puede hacer las cosas geniales de intercambio. Sin embargo, hay una opción disponible para aquellos a los que les gusta jugar con su navegador. Y ese es el proxy SSL man-in-the-middle.El Charles Web HTTP proxy parece ser la solución principal a este problema. Básicamente, la forma en que funciona es que cuando su navegador realiza una solicitud al servidor HTTPS remoto, el proxy ssl intercepta la solicitud y desde la dirección IP del servidor genera un certificado de servidor sobre la marcha, que firma con su propia CA raíz. y envía de vuelta al navegador. El navegador obviamente se queja del certificado autofirmado, pero aquí puede optar por instalar el certificado CA de raíz del proxy ssl en el navegador, confundiendo el navegador y permitiendo que el proxy ssl sea el intermediario y realice reemplazos y filtros en la respuesta sin procesar cuerpo.
Alternativa rodar su propia extensión de cromo Decidí rodar mi propia extensión de cromo, que estoy planeando poner a disposición. Actualmente está en un estado muy difícil de codificar a mis propios requisitos, pero funciona bastante bien, incluso para las solicitudes de https y otro beneficio es que una solución de complemento de navegador puede integrarse más estrechamente con las herramientas de desarrollo del navegador.
Duplicado de [Reemplazar la versión jQuery de una página con Greasemonkey] (http://stackoverflow.com/questions/7700728/replace-jquery-version-of-a-page-with-greasemonkey) - que muestra cómo reemplace el JS remoto con una versión local. –
@Brock Adams esa solución es específica de Windows y no funcionará en un sistema operativo unix-y. No sé si eso importa para OP, pero estaría bien si alguien tuviera una solución universal. –
@Daniel Mendel, hay 2 soluciones allí. Probablemente, uno trabajará para el OP como odds-are él está en Windows. La otra solución no se limita a Windows, sino que también explica las limitaciones que implican hacer esto con un UserScript o Greasemonkey (aunque la respuesta puede funcionar mejor cuando se transporta a Chrome, algo que no probé ya que solo uso Chrome escasamente). –