javascript for Desativar a mesma política de origem no Chrome




javascript for chrome (21)

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).

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.


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.


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


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.


Você pode simplesmente usar essa extensão do Chrome Allow-Control-Allow-Origin

basta clicar no ícone da extensão para ativar ou desativar o compartilhamento entre recursos conforme desejar


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"]
    })

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.


Se você estiver usando o Google Chrome no Linux, siga as instruções de comando.

google-chrome  --disable-web-security

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"



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 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.


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

No Windows 10, o seguinte funcionará.

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

Para usuários do Windows com o Chrome versão 60.0.3112.78 . Você não precisa fechar nenhuma instância do chrome.

  1. Crie um atalho na sua área de trabalho
  2. Clique com o botão direito no atalho e clique em Propriedades
  3. Edite a propriedade Target
  4. Defina como "C: \ Arquivos de Programas (x86) \ Google \ Chrome \ Aplicativo \ chrome.exe" --disable-web-security --user-data-dir = "C: / ChromeDevSession"
  5. Inicie o chrome e ignore a mensagem que diz que --disable-web-security não é suportada!

CUIDADO A NÃO UTILIZAR ESTA INSTRUÇÃO DE NAVEGADOR ESPECIAL PARA NAVEGAR, PORQUE PODERÁ SER ENVOLVIDO COM ELE!


APENAS PARA O USUÁRIO MAC

open -n -a /Applications/Google\ Chrome.app --args --user-data-dir="/tmp/someFolderName" --disable-web-security

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!


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

No Linux-Ubuntu, para executar simultaneamente uma sessão normal e uma sessão não segura, execute o seguinte comando:

google-chrome  --user-data-dir=/tmp --disable-web-security

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




google-chrome