El error "Intento de JavaScript no seguro para acceder al marco con URL ..." se genera continuamente en el inspector de Chrome webkit

129

Chrome (o cualquier otro navegador webkit) arroja una tonelada de estos "intentos de JavaScript inseguro para acceder al marco con URL ..." cuando se trabaja con la API de Facebook, por ejemplo.

No interfiere con la operación real, pero hace que la consola de JavaScript sea básicamente inutilizable.

Me gustaría saber si hay una manera de suprimir estos errores específicamente en la consola. O si hay otras soluciones en las que puedan pensar, realmente lo agradecería.

Gracias.

Neil Sarkar
fuente
1
Actualmente estoy usando la solución alternativa de tener la pestaña de la consola configurada para mostrar solo los registros. Estoy buscando una solución que me permita rastrear errores (pero no este).
Neil Sarkar
sería bueno proporcionar una muestra de cómo está utilizando la API. Hay muchas razones por las que esto podría suceder.
Kinlan
Sé lo que quieres decir, pero estoy bastante seguro de que esto sucede con cualquier integración de Facebook. Por ejemplo, abra su consola webkit js en este sitio de Domino (en producción) pizzaholdouts.com
Neil Sarkar
1
¿No estás simplemente probando scripts entre sitios? ¿Estás solicitando direcciones API de Facebook desde tu propio servidor? El camino es un poco diferente.
Tomasz Durka
44
no solicito nada, solo puse en el material repetitivo para obtener el js sdk working developers.facebook.com/docs/reference/javascript
Neil Sarkar

Respuestas:

19

Puede permitir solicitudes entre dominios durante las pruebas ejecutando Chrome con la --disable-web-securityopción de línea de comando. Esto probablemente debería eliminar el error (y permitir que FB espíe sus pruebas;)

Dagg Nabbit
fuente
hmm eso es intrigante ... ¿hay alguna manera de configurar la opción de esa manera aparte de la línea de comando? Intenté esto desde la línea de comandos: ¡ /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-web-securityy parecía funcionar! pero decía que no podía cargar mi perfil ... ¿alguna idea de cómo configurar esa bandera desde la aplicación, o configurarla como predeterminada?
Neil Sarkar
44
Como actualización, ahora estoy usando Chrome exclusivamente, y todavía me encantaría saber la respuesta a esto
Neil Sarkar
2
open -a '/Applications/Google Chrome Canary.app' --args --disable-web-security
Sandstrom
4

Esto sucede cuando se carga una fuente de un dominio diferente e intenta acceder al documento.cookie. Ocurre con las fuentes principales (etiquetas de script) así como con los documentos de iframe que intentan acceder al document.cookie por alguna razón.

Celli
fuente
4

¿Cuál es el problema?

Toneladas de Unsafe JavaScript attempt to access frame with URL...mensajes de error en la consola Chrome JS.

Como señala @thechrisproject , estos errores son causados ​​por muchas aplicaciones y widgets de terceros de buena reputación, que incluyen, entre otros:

  • El SDK de Facebook JS
  • Vimeo Iframe Embed
  • Insertar iframe de Google Maps

Mi comprensión sobre el por qué : (corrígeme si me equivoco)

Chrome tiene configuraciones de seguridad más estrictas y / o muestra más errores que los navegadores de la competencia. Los autores de API / widget / incrustación intentan hacer cosas (cross-domain / frame) que no funcionarán en todos los navegadores (probablemente para sus propios informes / análisis) pero que en realidad no afectan la utilidad de su widget si no funciona trabajo (solo causa muchos errores molestos)

Respuesta rápida

NO, no puede ( solo ) suprimir estos errores en la consola de Chrome.

Soluciones?

  • Tratar con él. Estos errores en realidad no rompen estas aplicaciones y widgets de terceros, solo hacen que la consola sea mucho más difícil de usar
  • puede configurar la consola para registrar solo advertencias, registros o mensajes de depuración. Esto ocultará TODOS los errores.
  • puedes usar otro navegador
  • Como @Dagg_Nabbit. señaló , puede permitir solicitudes entre dominios ejecutando Chrome con la --disable-web-securityopción de línea de comando. Más información aquí: deshabilite la misma política de origen en Chrome . Tenga en cuenta que esta configuración afectará negativamente la seguridad de su navegador. Tengo 2 accesos directos de Chrome para poder abrirlo con o sin esta bandera.
Zach Lysobey
fuente
3

Como no podemos culpar a la gente de Google por construir un navegador tan seguro, creo que la mejor solución es usar las soluciones del lado del servidor de Facebook (por ejemplo, PHP SDK), le ahorrará mucho, mucho, mucho, mucho, Mucho dolor de cabeza. La única ventaja que veo al usar el SDK de FB javascript es el inicio de sesión emergente que puede hacer usted mismo usando javascript / jQuery.

Jhourlad Estrella
fuente
66
¿Por qué usar PHP SDK (u otro SDK del lado del servidor) ahorrará tanto dolor de cabeza?
Steve Horn
@steve: El mero hecho de que Chrome esté bloqueando la solicitud insegura responde mucho sobre cuán inseguro es el procesamiento del lado del cliente.
Jhourlad Estrella
2
En mi humilde opinión, la contaminación de la consola JS no debería ser una consideración primordial al decidir si poner el lado lógico del lado del servidor o del lado del cliente.
Zach Lysobey
1
Rendimiento, seguridad, organización / mantenimiento del código, portabilidad: todas las cosas que consideraría primero. stackoverflow.com/questions/1516852/…
Zach Lysobey
2

Estos errores se pueden generar si, cuando registra su aplicación en Facebook, no tiene una barra diagonal en el campo URL del sitio. En otras palabras, necesita " http://dominio.com / " no " http://dominio.com "

Puede verificar la configuración de URL del sitio desde developers.facebook.com/apps Editar configuración -> Básico -> URL del sitio.

Rob H
fuente
¿Podrías aclararme tu oración?
itinerario