Estoy desarrollando una herramienta de investigación local que me obliga a desactivar la misma política de origen de Firefox (en términos de acceso al script, no me preocupan las solicitudes entre dominios).
Más específicamente, quiero que los scripts en el dominio de host puedan acceder a elementos arbitrarios en cualquier iframes incrustado en la página, independientemente de su dominio.
Soy consciente de las preguntas y respuestas anteriores que mencionaron la extensión CORS FF, pero eso no es lo que necesito, ya que solo permite CORS, pero no acceso al script.
Si no se puede hacer fácilmente, también agradecería cualquier información que me indique una parte específica del código FF src que puedo modificar para deshabilitar SOP, de modo que pueda volver a compilar FF.
fuente
Respuestas:
Hay una extensión de Firefox que agrega los encabezados CORS a cualquier respuesta HTTP que funcione en el último Firefox ( compilación 36.0.1 ) lanzado el 5 de marzo de 2015 . Lo probé y funciona tanto en Windows 7 como en Mavericks. Lo guiaré a través de los pasos para que funcione.
1) Obtener la extensión
Puede descargar el xpi desde aquí (compilaciones del autor) o desde aquí (espejo, es posible que no se actualice).
O descargue los archivos de GitHub. Ahora también está en Firefox Marketplace: descárguelo aquí . En este caso, el complemento se instala después de hacer clic en instalar y puede pasar al paso 4.
Si descargó el xpi, puede saltar al paso 3. Si descargó el zip de GitHub, vaya al paso 2.
2) Construyendo el xpi
Necesitas extraer el zip, entrar en la carpeta "cors-anywhere-firefox-addon-master", seleccionar todos los elementos y comprimirlos. Luego, cambie el nombre del zip creado como * .xpi
Nota: Si está utilizando la interfaz gráfica de usuario de OS X, puede crear algunos archivos ocultos, por lo que sería mejor utilizar la línea de comandos.
3) Instalación del xpi
Puede simplemente arrastrar y soltar el xpi en Firefox, o ir a: "about: addons", haga clic en el engranaje en la esquina superior derecha y seleccione "instalar agregar desde el archivo", luego seleccione su archivo .xpi. Ahora, reinicia Firefox.
4) Hacer que funcione
Ahora, la extensión no funcionará de forma predeterminada. Debes arrastrar el ícono de la extensión a la barra de extensión, pero no te preocupes. ¡Hay fotografías!
5) Probando si está funcionando
jQuery
JavaScript
6) Consideraciones finales
Tenga en cuenta que https a http no está permitido .
Puede haber una forma de evitarlo, pero está detrás del alcance de la pregunta.
fuente
security.mixed_content.block_active_content
de falsa ysecurity.mixed_content.block_display_content
de verdad . Tenga en cuenta que está deshabilitando cierta seguridad y esta debería ser una solución temporal.fuente
file://
protocolo. Los informáticos deberían poner más peso en la palabra "cualquier cosa"; a menos que haya probado todo (lo que no ha hecho), intente ser más conservador con sus comentarios. Lo mismo ocurre con el uso de la palabra "inútil".Me di cuenta de que mi respuesta anterior tiene una votación negativa porque no especifiqué cómo deshabilitar específicamente la política de origen de FF. Aquí daré una respuesta más detallada:
Advertencia: Esto requiere una recompilación de FF y la versión recién compilada de Firefox no podrá habilitar SOP nuevamente.
Consulte el código fuente de Firefox de Mozilla, busque nsScriptSecurityManager.cpp en el directorio src. Usaré el que se enumera aquí como ejemplo: http://mxr.mozilla.org/aviarybranch/source/caps/src/nsScriptSecurityManager.cpp
Vaya a la implementación de la función nsScriptSecurityManager :: CheckSameOriginURI, que es la línea 568 a la fecha 03/02/2016.
Haga que la función siempre devuelva NS_OK.
Esto desactivará SOP para siempre.
La respuesta del complemento del navegador de @Giacomo debería ser útil para la mayoría de las personas y he aceptado esa respuesta, sin embargo, para mis necesidades de investigación personal (TL; no explicaré aquí) no es suficiente y creo que otros investigadores pueden necesitar hacer lo que Lo hice aquí para matar completamente a SOP.
fuente
Escribí un complemento para solucionar este problema en Firefox (Chrome, la versión de Opera lo tendrá pronto). Funciona con la última versión de Firefox, con una hermosa interfaz de usuario y compatibilidad con expresiones regulares JS: https://addons.mozilla.org/en-US/firefox/addon/cross-domain-cors
fuente
A partir de septiembre de 2016, este complemento es el mejor para deshabilitar CORS : https://github.com/fredericlb/Force-CORS/releases
En el panel de opciones puedes configurar qué encabezado inyectar y sitio web específico para que se habilite automáticamente.
fuente
El complemento cors- anywhere funciona para mí hasta Firefox 68, después de 68 necesito ajustar 'privacy.file_unique_origin' -> false (abriendo 'about: config') para resolver ' Solicitud CORS no HTTP ' para la nueva regla de origen CORS introducido.
fuente
En
about:config
agregarcontent.cors.disable
(cadena vacía).fuente
true
, pero no dice nada sobrefalse
otros valores. "En Firefox, la preferencia que deshabilita CORS es content.cors.disable. Si se establece en verdadero, se deshabilita CORS, por lo que siempre que ese sea el caso, las solicitudes de CORS siempre fallarán con este error". developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/…