Estou desenvolvendo uma ferramenta de pesquisa local que exige que eu desative a política de mesma origem do Firefox (em termos de acesso de script, eu realmente não me importo com solicitações de domínio cruzado).
Mais especificamente, quero que os scripts no domínio do host possam acessar elementos arbitrários em quaisquer iframes incorporados na página, independentemente de seu domínio.
Estou ciente de perguntas e respostas anteriores que mencionaram a extensão CORS FF, mas não é disso que preciso, pois ela só permite o CORS, mas não o acesso ao script.
Se isso não puder ser feito facilmente, eu também gostaria de receber quaisquer insights que me apontem para uma parte específica do código FF src que eu possa modificar para desabilitar o SOP, para que eu possa recompilar o FF.
fonte
Respostas:
Há uma extensão do Firefox que adiciona os cabeçalhos CORS a qualquer resposta HTTP funcionando no Firefox ( compilação 36.0.1 ) mais recente lançado em 5 de março de 2015 . Eu testei e está funcionando tanto no Windows 7 quanto no Mavericks. Vou guiá-lo pelas etapas para fazê-lo funcionar.
1) Obtendo a extensão
Você pode baixar o xpi aqui (compilações do autor) ou aqui (espelho, pode não ser atualizado).
Ou baixe os arquivos do GitHub. Agora também no Firefox Marketplace: Baixe aqui . Nesse caso, o complemento é instalado depois de clicar em instalar e você pode pular para a etapa 4.
Se você baixou o xpi, pode pular para a etapa 3. Se você baixou o zip do GitHub, vá para a etapa 2.
2) Construindo o xpi
Você precisa extrair o zip, entrar na pasta "cors-anywhere-firefox-addon-master", selecionar todos os itens e compactá-los. Em seguida, renomeie o zip criado como * .xpi
Nota: Se você estiver usando o OS X gui, ele pode criar alguns arquivos ocultos, então seria melhor usar a linha de comando.
3) Instalando o xpi
Você pode simplesmente arrastar e soltar o xpi para o firefox, ou ir para: "about: addons", clicar na engrenagem no canto superior direito e selecionar "instalar add on from file" e selecionar seu arquivo .xpi. Agora, reinicie o Firefox.
4) Fazer funcionar
Agora, a extensão não funcionará por padrão. Você precisa arrastar o ícone da extensão para a barra de extensão, mas não se preocupe. Existem fotos!
5) Testar se está funcionando
jQuery
JavaScript
6) Considerações finais
Observe que https a http não é permitido .
Pode haver uma maneira de contornar isso, mas está além do escopo da questão.
fonte
security.mixed_content.block_active_content
a falsa esecurity.mixed_content.block_display_content
a verdadeira . Lembre-se de que você está desativando alguma segurança e esta deve ser uma solução temporária.fonte
file://
protocolo. Os cientistas da computação deveriam colocar mais peso na palavra "qualquer coisa" - a menos que você tenha testado tudo (o que não fez), tente ser mais conservador com seus comentários. O mesmo vale para o uso da palavra "inútil".Percebi que minha resposta anterior foi rejeitada porque não especifiquei como desabilitar a política de mesma origem do FF especificamente. Aqui darei uma resposta mais detalhada:
Aviso: Isso requer uma recompilação do FF, e a versão recém-compilada do Firefox não será capaz de habilitar SOP novamente.
Verifique o código-fonte do Mozilla Firefox, encontre nsScriptSecurityManager.cpp no diretório src. Vou usar aquele listado aqui como exemplo: http://mxr.mozilla.org/aviarybranch/source/caps/src/nsScriptSecurityManager.cpp
Vá para a implementação da função nsScriptSecurityManager :: CheckSameOriginURI, que é a linha 568 na data 02/03/2016.
Faça com que essa função sempre retorne NS_OK.
Isso desativará o SOP para sempre.
A resposta do complemento do navegador por @Giacomo deve ser útil para a maioria das pessoas e eu aceitei essa resposta, no entanto, para minhas necessidades de pesquisa pessoal (TL; não vou explicar aqui) não é suficiente e imagino que outros pesquisadores possam precisar fazer o que Eu fiz aqui para matar totalmente o SOP.
fonte
Eu escrevi um add-on para superar esse problema no Firefox (versão Chrome, Opera terá em breve). Funciona com a versão mais recente do Firefox, com uma bela IU e suporte JS regex: https://addons.mozilla.org/en-US/firefox/addon/cross-domain-cors
fonte
Em setembro de 2016, este complemento é o melhor para desativar o CORS : https://github.com/fredericlb/Force-CORS/releases
No painel de opções, você pode configurar qual cabeçalho injetar e um site específico para ativá-lo automaticamente.
fonte
O complemento cors- anywhere funciona para mim até o Firefox 68, após 68 eu preciso ajustar 'privacy.file_unique_origin' -> false (por abrir 'about: config') para resolver ' solicitação CORS não HTTP ' para nova regra CORS de mesma origem introduzido.
fonte
Em
about:config
adicionarcontent.cors.disable
(string vazia).fonte
true
, mas não diz nada sobrefalse
ou outros valores. "No Firefox, a preferência que desabilita o CORS é content.cors.disable. Definir como true desabilita o CORS, então, sempre que for o caso, as solicitações do CORS sempre falharão com este erro." developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/…