フレーム、iframeなどの内部で行われたページの読み込みを検出する方法があるかどうか疑問に思われます(おそらくJavaScriptを使用)。もしそうなら、そのような検出システムの限界は何ですか
if (top.location.href != window.location.href) {
alert("In A Frame");
}
制限は、JavaScriptがオフになっていると機能しないことです。
X-Frame-Options HTTPヘッダーを使用することもできます。このヘッダーは、Webページを別のWebページでフレーム化することを許可するかどうかをWebブラウザーに通知します。これには、<frame>
および<iframe>
タグが含まれます。
このヘッダーには、次の2つの値があります。
DENY-この設定により、配信元の同じWebサイトにある場合でも、配信されるページがフレームに配置されなくなります。フレーム内でページを使用するつもりがない場合に使用します。
SAMEORIGIN-この設定により、同じWebサイトのページのフレームでページを提供できます。外部サイトがフレーム内のページを読み込もうとすると、リクエストは拒否されます。
このヘッダーは、Internet Explorer 8.0、Firefox 3.6.9、Opera 10.50、Safari 4.0、およびChrome 4.1で機能します。