web-dev-qa-db-ja.com

jsライブラリがiframeに読み込まれるように設計されているのはなぜですか?

ユーザーが自分のウェブサイトに含めるJavaScriptライブラリを開発しています。サードパーティのライブラリに共通するテーマは、それらがn iframeに読み込まれることです。 (ex you tube)セキュリティの観点から、そのための特定の理由はありますか?

私のライブラリは当初iframeに読み込まれるように設計されていましたが、非常に特殊なケースがあるため、何らかの方法でDOMに直接読み込むことが唯一の方法だと思います。

1
anekix

JavaScriptをiframeに「自動的に」ロードすると、ブラウザが採用している Same Origin Policy のフレーバーに関する不要な変更から親が保護されます。

そのため、元のWebコンテンツを変更しようとしたときに、サードパーティのライブラリが与えるダメージを制限します。たとえば、フィッシングを実行し、ユーザーの情報やCookieなどを盗む、同じように見える他の場所への正当なリンクを変更する可能性があります。

これは、同じOriginポリシーが実装される唯一の方法ではありませんが、非常に簡単な方法です。親とiframeの間の(安全な)相互作用が必要な場合、方法の1つは postMessage 呼び出しを実行することです。

3
NeverGoodEnough