「安全でないJavaScriptがURLでフレームにアクセスしようとしています…」エラーがChrome Webkitインスペクターで継続的に生成されます


129

たとえば、Chrome(またはその他のWebkitブラウザ)は、Facebook APIを使用しているときに、「安全でないJavaScriptがURLでフレームにアクセスしようとしています...」という大量のエラーをスローします。

実際の操作には影響しませんが、JavaScriptコンソールは基本的に使用できなくなります。

特にコンソールでこれらのエラーを抑制する方法があるかどうか知りたいのですが?または、皆さんが考えることができる他の解決策がある場合、私はそれを本当に感謝します。

ありがとう。


1
現在、私はコンソールタブをログのみを表示するように設定するという回避策を使用しています。エラーを追跡できるソリューションを探しています(これだけではありません)。
Neil Sarkar

APIの使用方法のサンプルを提供するとよいでしょう。これが発生する理由はたくさんあります。
Kinlan

私はあなたが何を意味しているのか知っていますが、これはどんなFacebook統合でも起こると確信しています。例として、このドミノのサイト(運用
Neil Sarkar

1
単純にクロスサイトスクリプティングを試してみませんか?自分のサーバーからFacebook APIアドレスを要求していますか?方法は少し異なります。
Tomasz Durka

4
何も要求せず、定型的なものを入れてjs sdkを機能 させるdevelopers.facebook.com/docs/reference/javascript
Neil Sarkar

回答:


19

--disable-web-securityコマンドラインオプションを指定してchromeを実行すると、テスト中にクロスドメインリクエストを許可できます。これはおそらくエラーを取り除くはずです(そしてFBがテストをスパイできるようにします;)


うーん、それは興味深いです...コマンドラインとは別にオプションをそのように設定する方法はありますか?私はこれをコマンドラインから試し/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-web-securityてみました:そしてそれはうまくいったようです!しかし、それは私のプロファイルをロードできなかったと言いました...アプリ内からそのフラグを設定する方法、またはそれをデフォルトに設定する方法はありますか?
Neil Sarkar、2010

4
アップデートとして、私は今、もっぱらクロムを使用している、と私はまだこの答えを知っているのが大好きだ
ニール・サルカール

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

4

これは、別のドメインのソースがロードされ、document.cookieにアクセスしようとしたときに発生します。これは、ヘッドソース(スクリプトタグ)と、何らかの理由でdocument.cookieにアクセスしようとするiframeドキュメントで発生します。


4

どうしたの?

Unsafe JavaScript attempt to access frame with URL...Chrome JSコンソールの大量のエラーメッセージ。

以下のよう@thechrisprojectが指摘する、これらのエラーを含め、多くの評判の良いサードパーティのAPIとウィジェットによって引き起こされるがこれらに限定されません:

  • Facebook JS SDK
  • Vimeo iframe埋め込み
  • Google Maps Iframe埋め込み

理由についての私の理解:( 間違っている場合は修正してください)

Chromeのセキュリティ設定はより厳しく、競合するブラウザよりもこのようなエラーが多く表示されます。API /ウィジェット/埋め込みの作成者は、(おそらく独自のレポート/分析では)すべてのブラウザーで機能しないが、実際には機能しない場合でもウィジェットの有用性に影響を与えない(クロスドメイン/フレーム)ことを試みます仕事(たくさんの迷惑なエラーを引き起こすだけ)

素早い回答

いいえ、 Chromeコンソールでこれらのエラーを(単に)抑制することはできません。

ソリューション?

  • それに対処します。これらのエラーは実際にはこれらのサードパーティのAPIやウィジェットを壊すものではなく、コンソールの使用をはるかに困難にするだけです。
  • 警告、ログ、またはデバッグメッセージのみをログに記録するようにコンソールを設定できます。これにより、すべてのエラーが非表示になります。
  • 別のブラウザを使用できます
  • @Dagg_Nabbitとして指摘したように、--disable-web-securityコマンドラインオプションを指定してchromeを実行すると、クロスドメインリクエストを許可できます。詳細はこちら:Chromeで同じ生成元ポリシーを無効にする。この設定はブラウザのセキュリティに悪影響を及ぼすことに注意してください。2つのChromeショートカットがあるので、このフラグの有無に関係なく開くことができます。

3

このような安全なブラウザを構築したことでGoogleの人々を責めることはできないので、最善の解決策はFacebookのサーバー側ソリューション(PHP SDKなど)を使用することです。頭痛の種。FB javascript SDKを使用する際に私が目にする唯一の利点は、javascript / jQueryを使用して自分でできるポップアップログインです。


6
PHP SDK(または他のサーバー側SDK)を使用すると、なぜ頭痛の種が大幅に減るのですか?
スティーブホーン

@steve:Chromeが安全でないリクエストをブロックしているという単なる事実は、クライアント側の処理がどれほど安全でないかに関して多くのことを答えます。
Jhourlad Estrella、2011

2
JSコンソールのIMHO汚染は、ロジックをサーバー側にするかクライアント側にするかを決定する際の主要な考慮事項ではありません。
Zach Lysobey 2013年

1
パフォーマンス、セキュリティ、コード編成/保守性、移植性-私が最初に検討するすべてのもの。 stackoverflow.com/questions/1516852/...
ザックLysobey

2

これらのエラーは、アプリをFacebookに登録するときに、サイトURLフィールドに末尾のスラッシュがない場合にスローされる可能性があります。言い換えれば、あなたは「必要http://domain.com /」ではない「http://domain.com

サイトURLの設定は、developers.facebook.com / appsで確認できます。設定の編集->基本->サイトURL。


文章を明確にしていただけませんか。
2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.