フレーム式のサイトは余り奨められないものではあるものの、実際にはかなり多いと言えます。
フレームサイトで問題になるのは、フレームサイトからのリンクが正しく処理されるかと言うことです。
故意か過失かに拘らず、フレームの中にリンク先のコンテンツを組込んでしまう場合が多いようですが、米国ではこの行為は通常のリンクと見做さず、コンテンツの盗用と見做した判決が出たことがあるようです。
勿論、そのようなリンク集を組んでいるサイト制作者に修正を求めてもいいのですが、一番簡単な対策はこちら側でフレームに組込ませない対策を執ることでしょう。
JAVAスクリプトを用いれば、簡単にフレームを解除することが出来ます。
ここでは、その方法を解説します。
全てのHTML文書でリンクする外部スクリプトに書き加えておけば、簡単にフレーム破りが出来るようになります。
ここで解説する方法は、あくまでもJAVAスクリプトによるフレーム解除ですので、JAVAスクリプトが有効でないと意味がありません。
しかしながら、それでもコンテンツを盗用するつもりでフレームに組込む悪意あるフレームサイト制作者の意図を挫くには充分です。
なぜなら、一般の閲覧者は必ずJAVAスクリプトを無効にしてくれるとは限らないからです。
仮に悪意あるフレームサイト制作者が閲覧に際してJAVAスクリプト対応環境の使用を禁止することは出来ても、ウェブにおいてはそんな主張には強制力は無く、せいぜい無視されるのがオチです。
確かにそこまでやればフレームサイト内のリンクに対してフレーム解除の機構は通用しなくなります。
ですが、そこまで徹底していれば、誰が見ても故意にコンテンツを盗用しようとしてフレームを使っていると分かりますので、サーヴァを管理するISPなどの業者にコンテンツ盗用の事実を申立てるなど別の対策が執れるでしょう。
他人のフレームにコンテンツを組込ませないスクリプトは以下のようになります。
if (top!=self) { top.location.href=self.location.href; }
非常に単純なもので、要は「文書がフレームに組込まれていたら、フレームを解除しろ」というだけです。
ここで、ウインドウ全体と自分自身を扱うために二つのオブジェクトを利用します。「top」と「self」です。
もし、フレームに組込まれた状態で無いのなら、topオブジェクトはHTML文書自身と言うことになります。つまり、「top == self」となる筈です。
逆に、フレームに組込まれた状態では、topオブジェクトにはフレームセット文書(フレームの枠組みを設定した文書)が入り、HTML文書自身ではありません。つまり、「top != self」となります。
スクリプトのif文では、条件式に「top != self」とあります。
つまり「フレームに組込まれた状態であれば…」という条件判定を行っている訳です。
さて、実際にフレームに組込まれている状態で実行されるスクリプトですが、これは単純に「top.location.href=self.location.href」だけです。
つまり、「topオブジェクトのlocation.hrefプロパティ」すなわち「ウインドウ全体で読込んでいるリソースのURL」に、「selfオブジェクトのlocation.hrefプロパティ」すなわち「自分自身のURL」をセットすることで、ウインドウ全体に自分自身を読込ませる、すなわちフレームセットを解消してしまうと言う訳です。
Copyright ©平成15年-平成24年 さいたま・しらぎくさいと 版権所有
marguerite.site@gmail.com