extension - javascript for chrome




Desativar a mesma política de origem no Chrome (18)

Existe alguma maneira de desativar a política de mesma origem no navegador Google Chrome ?

Isto é estritamente para desenvolvimento, não uso de produção.


Acho que a melhor maneira de fazer isso é duplicar um atalho do Chrome ou do Chrome Canary na área de trabalho do Windows. Renomeie este atalho para "NO CORS" e edite as propriedades desse atalho.

no destino, inclua --disable-web-security --user-data-dir="D:/Chrome" no final do caminho de destino.

seu alvo deve ser algo como isto:

Atualização: novas bandeiras adicionadas.

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="D:/Chrome"


Em um PC com Windows, use uma versão mais antiga do Chrome e o comando funcionará para todos vocês. Eu fiz o downgrade do meu Chrome para a versão 26 e funcionou.


Eu não queria reiniciar o Chrome e desativar minha segurança na Web (porque estava navegando durante o desenvolvimento) e tropecei nessa extensão do Chrome.

Loja da Web do Chrome Allow-Control-Allow-Origin: *
(https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=pt)

Basicamente, é uma pequena alternância para ativar e desativar a verificação Permitir acesso-Origem-Controle. Funciona perfeitamente para mim pelo que estou fazendo.

EDIT: Eu tentei usar o outro dia para outro projeto e parou de funcionar. Desinstalar e reinstalar a extensão corrigida (para redefinir os padrões).


Eu uso isso às vezes, por postar um site front-end localhost para uma API back-end localhost (por exemplo, Reagir a uma antiga API .NET). Eu criei um atalho separado na minha área de trabalho do Windows 10, para que ele nunca seja usado para navegação normal, apenas para depuração localmente. Eu fiz o seguinte:

  1. Clique com o botão direito na área de trabalho, adicione um novo atalho
  2. Adicione o destino como "[PATH_TO_CHROME]\chrome.exe" --disable-web-security
  3. Clique OK.

Você receberá um aviso sobre a carga deste navegador, que não é seguro, apenas tome cuidado com o que você navegador nele. Eu tenho a tendência de renomear este novo atalho na área de trabalho, algo em maiúscula, e movê-lo para longe dos meus outros ícones, por isso não pode ser confundido com o Chrome normal.

Espero que isto ajude!


Experimente este comando no terminal Mac

open -n -a "Google Chrome" --args --user-data-dir=/tmp/temp_chrome_user_data_dir http://localhost:8100/ --disable-web-security 

Ele abre outra instância do chrome com segurança desativada e não há mais problema com o CORS. Além disso, você não precisa mais fechar outras instâncias do Google Chrome. Altere o URL do host local para o seu.


Feche o chrome (ou o cromo) e reinicie com o argumento --disable-web-security . Acabei de testar isso e verifiquei que posso acessar o conteúdo de um iframe com src = "http://google.com" incorporado em uma página veiculada de "localhost" (testado no cromo 5 / ubuntu). Para mim, o comando exato foi:

Nota: Mate todas as instâncias do chrome antes de executar o comando

chromium-browser --disable-web-security --user-data-dir="[some directory here]"

O navegador irá avisá-lo que "você está usando uma linha de comando não suportada" quando abrir pela primeira vez, o que você pode ignorar.

Da fonte de cromo:

// Don't enforce the same-origin policy. (Used by people testing their sites.)
const wchar_t kDisableWebSecurity[] = L"disable-web-security";

Antes do Chrome 48, você poderia usar apenas:

chromium-browser --disable-web-security

No Windows 10, o seguinte funcionará.

<<path>>\chrome.exe --allow-file-access-from-files --allow-file-access --allow-cross-origin-auth-prompt

Para Windows:

(usando o windows 8.1, chrome 44.0 )

Primeiro, feche o Google Chrome.

Em seguida, abra o prompt de comando e vá para a pasta onde está 'chrome.exe'.

( for me: 'chrome.exe' is here "C:\Program Files (x86)\Google\Chrome\Application".

Então eu digito: cd C:\Program Files (x86)\Google\Chrome\Application )

agora digite: chrome.exe --disable-web-security

uma nova janela de cromo será aberta.


Para o Selenium Webdriver, você pode fazer o selênio iniciar o Chrome com os argumentos apropriados (ou "switches") nesse caso.

 @driver = Selenium::WebDriver.for(:Chrome, { 
       :detach => false,
       :switches => ["--disable-web-security"]
    })

Para o Windows ... crie um atalho do Chrome na sua área de trabalho.
Clique com o botão direito do mouse> propriedades> Atalho
Editar caminho de "destino":

"C:\Program Files\Google\Chrome\Application\chrome.exe" --args --disable-web-security

(Altere o 'C: .... \ chrome.exe' para onde seu chrome estiver localizado).

et voilà :)


Para usuários do Windows:

O problema com a solução aceita aqui, na minha opinião é que se você já tiver o Chrome aberto e tentar rodar isso não vai funcionar.

No entanto, ao pesquisar isso, me deparei com um post no Superusuário. É possível executar o Chrome com e sem segurança da Web ao mesmo tempo? .

Basicamente, executando o seguinte comando (ou criando um atalho com ele e abrindo o Chrome por meio dele)

chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security

Você pode abrir uma nova instância "insegura" do Chrome ao mesmo tempo em que mantém suas outras instâncias de navegador "seguras" abertas e funcionando normalmente. Importante : excluir / limpar a pasta de C:/Chrome dev session toda vez que você abrir uma janela como segunda vez --disable-web-security não funcionará. Portanto, você não pode salvar suas alterações e, em seguida, abri-lo novamente como uma segunda instância insegura do Chrome com --disable-web-security .


Parece que nenhuma das soluções acima está funcionando. O --disable-web-security não é mais suportado em versões recentes do chrome.

Allow-Control-Allow-Origin: * - a extensão do Chrome resolveu parcialmente o problema. Ele funciona somente se sua solicitação estiver usando o método GET e não houver nenhum cabeçalho HTTP personalizado. Caso contrário, o chrome enviará a solicitação HTTP OPTIONS como uma solicitação pré-flight. Se o servidor não suportar o CORS, ele responderá com o código de status HTTP 404. O plug-in não pode modificar o código de status HTTP de resposta. Então, o Chrome rejeitará essa solicitação. Não há como o plug-in chrome modificar o código de status HTTP de resposta com base na API de extensão do Chrome atual. E você não pode redirecionar também para solicitações iniciadas por XHR.

Não tenho certeza do motivo pelo qual o Chrome torna a vida dos desenvolvedores tão difícil. Ele bloqueia todas as maneiras possíveis de desabilitar a verificação de segurança XSS, mesmo para o uso de desenvolvimento, o que é totalmente desnecessário.

Depois de dias de luta e pesquisa, uma solução funciona perfeitamente para mim: usar o corsproxy . Você tem duas opções aqui: 1. use corsproxy.com 2. instale o corsproxy na caixa local: npm install -g corsproxy

[Atualizado em 23 de junho de 2018] Recente Estou desenvolvendo um aplicativo SPA que precisa usar o corsproxy novamente. Mas parece que nenhum dos corsproxy no github pode atender a minha exigência.

  • precisa que ele seja executado dentro do firewall por motivos de segurança. Portanto, não posso usar https://cors-anywhere.herokuapp.com/ .
  • Ele precisa suportar https, já que o chrome bloqueia a solicitação de ajax sem https em uma página https.
  • Eu preciso rodar em nodejs. Eu não quero manter outra pilha de idiomas.

Então decido desenvolver minha própria versão do corsproxy com nodejs. Na verdade é muito simples. Eu publiquei isso como uma essência no github. Aqui está a essência do código fonte: https://gist.github.com/jianwu/8e76eaec95d9b1300c59596fbfc21b10

  • Está no código de nodejs simples sem nenhuma dependência adicional
  • Você pode executar no modo http e https (passando o número da porta https na linha de comando), para executar https, é necessário gerar o cert e key e colocar o diretório webroot.
  • Ele também serve como servidor de arquivos estáticos
  • Suporta também o pedido OPTION pré-voo.

Seguindo a resposta de Ola Karlsson, na verdade, a melhor maneira seria abrir o Chrome inseguro em uma sessão diferente. Dessa forma, você não precisa se preocupar em fechar todas as guias abertas no momento e também pode continuar navegando na Web com segurança com a sessão original do Google Chrome.

Esses arquivos em lote devem funcionar apenas para você no Windows.

Coloque-o em um arquivo Chrome_CORS.bat para facilitar o uso

start "" "c:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir="c:/_chrome_dev" --disable-web-security

Este é para o Chrome Canary . Canary_CORS.bat

start "" "c:\Users\%USERNAME%\AppData\Local\Google\Chrome SxS\Application\chrome.exe" --user-data-dir="c:/_canary_dev" --disable-web-security

Sim. Para o OSX, abra o Terminal e execute:

$ open -a Google\ Chrome --args --disable-web-security --user-data-dir

--user-data-dir exigido no Chrome 49+ no OSX

Para Linux, execute:

$ google-chrome --disable-web-security

Além disso, se você estiver tentando acessar arquivos locais para fins de desenvolvimento, como AJAX ou JSON, também poderá usar esse sinalizador.

-–allow-file-access-from-files

Para o Windows, vá para o prompt de comando e vá para a pasta em que o Chrome.exe está e digite

chrome.exe --disable-web-security

Isso deve desativar a mesma política de origem e permitir que você acesse arquivos locais.

Atualização: para o Chrome 22+, você verá uma mensagem de erro que diz:

Você está usando um sinalizador de linha de comando não suportado: --disable-web-security. Estabilidade e segurança sofrerão.

No entanto, você pode simplesmente ignorar essa mensagem durante o desenvolvimento.


Você pode usar esse plug-in do Chrome chamado "Allow-Control-Allow-Origin: *" ... Torna tudo muito simples e funciona muito bem. confira aqui: *


para usuários do mac:

open -a "Google Chrome" --args --disable-web-security --user-data-dir

e antes do Chrome 48, você poderia simplesmente usar:

open -a "Google Chrome" --args --disable-web-security

Não faça isso! Você está abrindo suas contas para ataques . Depois de fazer isso, qualquer site de terceiros pode começar a emitir solicitações para outros sites, sites nos quais você está conectado.

Em vez disso, execute um servidor local. É tão fácil quanto abrir um shell / terminal / linha de comando e digitar

cd path/to/files
python -m SimpleHTTPServer

Em seguida, apontando o seu navegador para

http://localhost:8000

Se você achar que é muito lento, considere esta solução


chromium-browser --disable-web-security --user-data-dir=~/ChromeUserData/






google-chrome