Errore "Tentativo non sicuro di JavaScript per accedere al frame con URL ..." generato continuamente nella finestra di ispezione del webkit di Chrome


129

Chrome (o qualsiasi altro browser webkit) lancia un sacco di questi "tentativi JavaScript non sicuri per accedere al frame con URL ..." quando si lavora con l'API di Facebook, ad esempio.

Non interferisce con il funzionamento effettivo, ma rende sostanzialmente inutilizzabile la console javascript.

Vorrei sapere se esiste un modo per sopprimere questi errori specificamente nella console? O se ci sono altre soluzioni a cui potete pensare, lo apprezzerei davvero.

Grazie.


1
Attualmente sto usando la soluzione alternativa di avere la scheda della console impostata per mostrare solo i registri. Sto cercando una soluzione che mi permetta di tenere traccia degli errori (non solo questo).
Neil Sarkar,

sarebbe utile fornire un esempio di come si sta utilizzando l'API. ci sono molte ragioni per cui questo potrebbe accadere.
Kinlan,

So cosa intendi, ma sono abbastanza sicuro che questo accada con qualsiasi integrazione di Facebook. Ad esempio, apri la tua console js webkit su questo sito Domino (in produzione) pizzaholdouts.com
Neil Sarkar,

1
Non stai semplicemente provando lo scripting cross-site? Stai richiedendo gli indirizzi API di Facebook dal tuo server? Il modo è un po 'diverso.
Tomasz Durka,

4
non richiedendo nulla, ho appena messo le cose sul boilerplate per far funzionare js sdk developers.facebook.com/docs/reference/javascript
Neil Sarkar

Risposte:


19

È possibile consentire le richieste tra domini durante il test eseguendo Chrome con l' --disable-web-securityopzione della riga di comando. Questo dovrebbe probabilmente eliminare l'errore (e consentire a FB di spiare i tuoi test;)


hmm questo è intrigante ... c'è un modo per impostare l'opzione in questo modo oltre alla riga di comando? L'ho provato dalla riga di comando: /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-web-securitye sembrava funzionare! ma ha detto che non è stato in grado di caricare il mio profilo ... hai idea di come impostare quel flag dall'app o impostarlo su quello predefinito?
Neil Sarkar,

4
come aggiornamento, ora sto usando Chrome esclusivamente, e mi piacerebbe ancora conoscere la risposta a questo
Neil Sarkar,

2
open -a '/Applications/Google Chrome Canary.app' --args --disable-web-security
sandstrom,

4

Ciò accade quando viene caricata una fonte di un dominio diverso e si tenta di accedere a document.cookie. Succede con fonti head (tag script) e anche con documenti iframe che provano ad accedere a document.cookie per qualche motivo.


4

Qual è il problema?

Tonnellate di Unsafe JavaScript attempt to access frame with URL...messaggi di errore nella console JS di Chrome.

Come sottolinea @thechrisproject , questi errori sono causati da molte API e widget di terze parti affidabili, tra cui, ma non limitato a:

  • SDK JS di Facebook
  • Vimeo Iframe Embed
  • Incorpora Iframe di Google Maps

La mia comprensione del perché : (per favore, correggimi se sbaglio)

Chrome ha impostazioni di sicurezza più rigorose e / o mostra più errori di questo tipo rispetto ai browser concorrenti. Gli autori di API / widget / embed tentano di fare cose (interdominio / frame) che non funzioneranno in tutti i browser (probabilmente per i loro report / analisi) ma che in realtà non influiscono sull'usabilità del loro widget se non funziona (causa solo molti fastidiosi errori)

Risposta rapida

No, non puoi ( solo ) sopprimere questi errori nella console di Chrome.

Soluzioni?

  • Affrontarla. Questi errori non interrompono effettivamente queste API e widget di terze parti, ma rendono la console molto più difficile da usare
  • è possibile impostare la console in modo che registri solo messaggi di avviso, registri o debug. Questo nasconderà TUTTI gli errori.
  • puoi usare un altro browser
  • Come @Dagg_Nabbit. sottolineato , è possibile consentire le richieste tra domini eseguendo chrome con l' --disable-web-securityopzione della riga di comando. Ulteriori informazioni qui: disabilita la stessa politica di origine in Chrome . Nota che questa impostazione influirà negativamente sulla sicurezza del tuo browser. Ho 2 scorciatoie cromate in modo da poterlo aprire con o senza questo flag.

3

Dal momento che non possiamo incolpare le persone di Google per la costruzione di un browser così sicuro, penso che la soluzione migliore sia utilizzare le soluzioni lato server di Facebook (ad esempio PHP SDK), ti farà risparmiare molto, molto, molto, molto, molto mal di testa. L'unico vantaggio che vedo nell'utilizzo dell'SDK javascript FB è il login popup che puoi fare tu stesso usando javascript / jQuery.


6
Perché l'uso dell'SDK PHP (o di altri SDK lato server) farà risparmiare molto mal di testa?
Steve Horn,

@steve: il semplice fatto che Chrome stia bloccando la richiesta non sicura risponde molto a quanto sia insicura l'elaborazione sul lato client.
Jhourlad Estrella,

2
L'inquinamento da IMHO della console JS non dovrebbe essere una considerazione primaria nel decidere se mettere la logica lato server o lato client.
Zach Lysobey,

1
Prestazioni, sicurezza, organizzazione del codice / manutenibilità, portabilità: tutto ciò che prima prenderei in considerazione. stackoverflow.com/questions/1516852/...
Zach Lysobey

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.