次の方法で共有


フレーム間のスクリプト記述とセキュリティ

Cross-Frame Scripting and Security Cross-Frame Scripting and Security *
*前のトピック: イベントモデルの理解
*次のトピック: DHTMLのアクセシビリティ

フレーム間のスクリプト記述とセキュリティ

Dynamic HTMLでは、オブジェクトモデルに基づいてスクリプトを作成することで、異なるウィンドウとフレームのコンテントを互いにインタラクションする強力な方法を提供する。しかし、ブラウザでは、様々なウィンドウとフレームで互いに無関係なドキュメントを同時に表示できるので、情報に対するデータの保全性とプライバシー保護のために規則が必要となる。

このセクションでは、これらの制限をDHTMLオブジェクトモデルに適用する方法と、その理由について説明する。スクリプトのインタラクションにおけるすべての規則は、ウィンドウ、ダイアログ ボックス、FRAMESET、FRAME、IFRAMEに同様に適用できる。

同じドメインからのコンテントどうしのインタラクションだけが許可される。例えば、「https://www.microsoft.com/」上の一般的なページでは、「https://www.microsoft.com/」ページ上の他のページのコンテントに対して自由にスクリプト記述できるが、異なるWebドメインからロードされたページに対してのスクリプト記述はできない。DHTMLオブジェクトモデルでは、document.domainプロパティがこの制限範囲を決定する。同じdomainプロパティのあるページだけが自由にインタラクションできる。また、UR中Lのプロトコルも一致しなくてはならない。例えば、HTTPページはHTTPSコンテントにアクセスできない。

スクリプトはdocument.domainプロパティにサイト名として2番目のレベルのドメインまで設定でき、ページに対するアクセス可能な範囲は拡張できる。例えば、「https://www.microsoft.com/」上のページでは、document.domainプロパティ(最初は"www.microsoft.com")を"microsoft.com"とすることで、「http://home.microsoft.com」上のページや他のサイトのページにアクセスを拡張できる。これは、他のページでもdocument.domainプロパティに同じ値を設定する限り可能である。名前の最後が"microsoft.com"のサイトからのページだけは、このドメインの設定によって、同じプロバイダからのコンテントが相互に影響し、これらの作業を自由に行える。2番目のレベルのドメインよりも短いドメイン接尾語("com"だけなど)は、1つのプロバイダ以上を示すので否認される。「http://www.microsoft.co.jp/」のような国際的なサイト名に対しては、幅広いアクセスのため許可されるドメインは"microsoft.co.jp"である("co.jp"ではない)。

ドメインの制限を越えてあらゆるURLにウィンドウやフレームをナビゲートできることは重要なので、以下の種類のアクセスは常に許可される。コンテントの読み込みや変更を行うアクセスだけが制限される。例えば、window.locationはナビゲーションの発生により設定されるが、異なるドメインのURLの場合、このプロパティは読み込めない。これによって、ユーザーがどこをブラウズしてきたかをあるページから知ることを許可することはユーザーのプライバシー違反となる。異なるドメインのページに適用できる制限を次に示す。

window.location このプロパティはナビゲートを設定できるが、読み込みできない
他のlocation 機能しない
document.href このプロパティはナビゲートを設定できるが、読み込みできない
他のdocument 機能しない
<IFRAME> srcプロパティはナビゲートを設定できるが、読み込みできない

アクセスできないオブジェクトモデルへアクセスを試みるスクリプトは、"permission denied"エラーで実行を停止させられる。

ドメイン セキュリティのためにある種のインタラクションは実行できないが、これはセキュリティを守るために必要なことを理解しなければならない。例えば、ドメイン セキュリティがないと、不当なページが他のページを"覗き見"できたり、DHTMLを使ってそのコンテントを操作できてしまう。

詳細については、Asynchronous and URL Monikers Overview を参照すること。

Up トップに戻る
© 1997 Microsoft Corporation. All rights reserved. Terms of Use.