Erro "JavaScript inseguro tentativa de acessar o quadro com URL ..." sendo continuamente gerado no inspetor de web kits do Chrome

129

O Chrome (ou qualquer outro navegador de webkit) lança uma tonelada dessas "Tentativas de JavaScript inseguras para acessar o quadro com URL ..." ao trabalhar com a API do Facebook, por exemplo.

Não interfere na operação real, mas torna o console javascript basicamente inutilizável.

Gostaria de saber se existe uma maneira de suprimir esses erros especificamente no console? Ou, se houver outras soluções em que vocês possam pensar, eu realmente aprecio isso.

Obrigado.

Neil Sarkar
fonte
1
Atualmente, estou usando a solução alternativa de apenas ter a guia do console definida para mostrar apenas os logs. Estou procurando uma solução que permita rastrear erros (apenas não este).
Neil Sarkar
seria bom fornecer uma amostra de como você está usando a API. existem muitas razões pelas quais isso pode acontecer.
Kinlan
Eu sei o que você quer dizer, mas tenho certeza que isso acontece com qualquer integração no Facebook. Por exemplo, abra seu console webkit js no site deste Domino (em produção) pizzaholdouts.com
Neil Sarkar
1
Você não está simplesmente tentando scripts entre sites? Você está solicitando endereços API do Facebook em seu próprio servidor? O caminho é um pouco diferente.
Tomasz Durka
4
Não pedindo nada, eu só colocar no material padronizado para obter os js SDK trabalhando developers.facebook.com/docs/reference/javascript
Neil Sarkar

Respostas:

19

Você pode permitir solicitações entre domínios durante o teste executando o chrome com a --disable-web-securityopção de linha de comando. Provavelmente, isso deve se livrar do erro (e permitir que o FB espie seus testes;)

Dagg Nabbit
fonte
hmm, isso é intrigante ... existe uma maneira de definir essa opção além da linha de comando? Eu tentei isso na linha de comando: /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-web-securitye parecia funcionar! mas disse que não era possível carregar meu perfil ... alguma idéia de como definir esse sinalizador no aplicativo ou defini-lo como padrão?
Neil Sarkar
4
como uma atualização, eu estou usando agora cromo exclusivamente, e eu ainda gostaria de saber a resposta a esta
Neil Sarkar
2
open -a '/Applications/Google Chrome Canary.app' --args --disable-web-security
sandstrom
4

Isso acontece quando uma fonte de um domínio diferente é carregada e tenta acessar o document.cookie. Isso acontece com fontes principais (tags de script) e também com documentos iframe que tentam acessar o document.cookie por algum motivo.

Celli
fonte
4

Qual é o problema?

Toneladas de Unsafe JavaScript attempt to access frame with URL...mensagens de erro no console do Chrome JS.

Como o @thechrisproject aponta , esses erros são causados ​​por muitas APIs e widgets respeitáveis ​​de terceiros, incluindo, entre outros:

  • O SDK JS do Facebook
  • Vimeo Iframe Incorporar
  • Incorporar Iframe do Google Maps

Meu entendimento sobre o porquê : (por favor, corrija-me se estiver errado)

O Chrome possui configurações de segurança mais rigorosas e / ou mostra mais erros do que os navegadores concorrentes. Os autores da API / widget / incorporação tentam fazer coisas (entre domínios / quadros) que não funcionarão em todos os navegadores (provavelmente para seus próprios relatórios / análises), mas que na verdade não afetam a utilidade do widget, se não trabalho (apenas causa muitos erros irritantes)

Resposta rápida

NÃO, você não pode ( apenas ) suprimir esses erros no console do Chrome.

Soluções?

  • Lide com isso. Esses erros, na verdade, não quebram essas APIs e widgets de terceiros, apenas tornam o console muito mais difícil de usar
  • você pode configurar o console para registrar apenas mensagens de aviso, log ou depuração. Isso ocultará TODOS os erros.
  • você pode usar outro navegador
  • Como @Dagg_Nabbit. apontado , você pode permitir solicitações entre domínios executando o chrome com a --disable-web-securityopção de linha de comando. Mais informações aqui: Desative a mesma política de origem no Chrome . Observe que essa configuração afetará negativamente a segurança do seu navegador. Eu tenho dois atalhos do Chrome para que eu possa abri-lo com ou sem esse sinalizador.
Zach Lysobey
fonte
3

Como não podemos culpar as pessoas do Google por criar um navegador tão seguro, acho que a melhor solução é usar as soluções do lado do servidor do Facebook (por exemplo, PHP SDK), você economizará muito, muito, muito, muito, muita dor de cabeça. A única vantagem que vejo ao usar o SDK javascript do FB é o login pop-up que você pode fazer usando javascript / jQuery.

Jhourlad Estrella
fonte
6
Por que o uso do PHP SDK (ou outro SDK do lado do servidor) economiza muita dor de cabeça?
Steve Horn
@ steve: O simples fato de o Chrome estar bloqueando a solicitação insegura responde muito sobre o quão inseguro é o processamento no cliente.
Jhourlad Estrella
2
A poluição do console do JS pelo IMHO não deve ser uma consideração primordial na decisão de colocar o lado do servidor ou do cliente lógico.
Zach Lysobey
1
Desempenho, segurança, organização / manutenção de códigos, portabilidade - todas as coisas que eu consideraria primeiro. stackoverflow.com/questions/1516852/…
Zach Lysobey
2

Esses erros podem ser gerados se, ao registrar seu aplicativo no Facebook, você não tiver uma barra no campo URL do site. Em outras palavras, você precisa " http://domain.com / " not " http://domain.com "

Você pode verificar a configuração do URL do site em developers.facebook.com/apps Editar configurações -> Básico -> URL do site.

Rob H
fonte
Poderia, por favor, esclarecer sua frase para mim?
itinance