security - puede - Deshabilitar la misma política de origen de Firefox
problemas con cookies (5)
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 de script, realmente no me preocupan las solicitudes de dominios cruzados).
Más específicamente, quiero que las secuencias de comandos en el dominio de host puedan acceder a elementos arbitrarios en cualquier iframes incrustado en la página, independientemente de su dominio.
Estoy al tanto de las preguntas y respuestas anteriores que mencionaban la extensión CORS FF, pero eso no es lo que necesito, ya que solo permite CORS, pero no el acceso a los scripts.
Si no se puede hacer fácilmente, también agradecería cualquier información que me señale una parte específica del código src de FF que puedo modificar para deshabilitar el SOP, para que pueda recomponer FF.
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, puede configurar qué encabezado inyectar y un sitio web específico para habilitarlo automáticamente.
Escribí un complemento para superar este problema en Firefox (Chrome, la versión de Opera tendrá pronto). Funciona con la última versión de Firefox, con una hermosa interfaz de usuario y es compatible con JS Regex: https://addons.mozilla.org/en-US/firefox/addon/cross-domain-cors
Hay una extensión para Firefox que agrega los encabezados CORS a cualquier respuesta HTTP que funcione en el último Firefox ( compilación 36.0.1 ) publicado el 5 de marzo de 2015 . Lo probé y funciona tanto en Windows 7 como en Mavericks. Te guiaré por los pasos para que funcione.
1) Obtener la extensión
Puede descargar el xpi desde here (compilaciones de autor) o desde here (espejo, no puede actualizarse).
O descargue los files de GitHub. Ahora también está en Firefox Marketplace: descargue aquí . En este caso, el complemento se instala después de hacer clic en instalar y puede saltear el paso 4.
Si descargó el xpi, puede ir al paso 3. Si descargó el archivo zip de GitHub, vaya al paso 2.
2) Construyendo el xpi
Necesita extraer el archivo comprimido, entrar en la carpeta "cors-everywhere-firefox-addon-master", seleccionar todos los elementos y comprimirlos. A continuación, cambie el nombre del archivo 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á mejor utilizar la línea de comandos.
3) Instalar el xpi
Simplemente puede arrastrar y soltar el xpi a firefox, o vaya a: "about: addons", haga clic en el engranaje en la esquina superior derecha y seleccione "instalar add on from file", luego seleccione su archivo .xpi. Ahora, reinicia Firefox.
4) Conseguir que funcione
Ahora, la extensión no funcionará por defecto. Debe arrastrar el icono de la extensión a la barra de extensión, pero no se preocupe. ¡Hay fotografías!
- Haga clic en el menú de Firefox
- Haga clic en Personalizar
- Arrastre CorsE a la barra
- Ahora, haga clic en el icono, cuando esté verde, los encabezados CORS se agregarán a cualquier respuesta HTTP
5) Prueba si está funcionando
jQuery
$.get( "http://example.com/", function( data ) {
console.log (data);
});
JavaScript
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
console.log(xmlhttp.responseText);
}
}
xmlhttp.open("GET","http://example.com/");
xmlhttp.send();
6) Consideraciones finales
Tenga en cuenta que https to http no está permitido .
Puede haber una forma de evitarlo, pero está detrás del alcance de la pregunta.
Me di cuenta de que mi respuesta anterior está downvoted porque no especifiqué cómo desactivar específicamente la misma 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á volver a habilitar el SOP.
Consulte el código fuente de Firefox de Mozilla, busque nsScriptSecurityManager.cpp en el directorio src. Utilizaré el que se muestra 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 esa función siempre devuelva NS_OK.
Esto deshabilitará el SOP para siempre.
La respuesta del complemento del navegador de @Giacomo debería ser útil para la mayoría de la gente y acepté esa respuesta, sin embargo, para mis necesidades personales de investigación (TL; no lo explicaré aquí) no es suficiente y creo que otros investigadores pueden necesitar hacer lo que Hice aquí para matar completamente a SOP.
about:config -> security.fileuri.strict_origin_policy -> false