うちのこは、swfファイルを無断転載・直リンクから保護するための配布スクリプトです。
利用には注意すべき点がたくさんあるので、必ず説明を読んでから利用してください。
また、いくつかの設定を状況に合わせて変更できます。
(この場合の「保護する」とは、「転載・直リンを不可能にする」という事ではなく、「転載・直リンされた場合はFlashを再生させない」=「転載・直リンする意味を無くす」という事です。)
index - / 履歴 / 動作サンプル / 効果とメリット・デメリット / 注意事項 / 導入手順 / 設定 /
ver.100504 ローカルでの動作テストに対応
ver.070623 許可アドレスでのワイルドカードの使用に対応
ver.070226 自作CGIへのデータ送信に対応
ver.070212 Mozilla系ブラウザに対応
ver.061125 スクリプトの記述ミスを修正
ver.061124 初期バージョン
チェック終了後、Flash内をクリックすると、本編のサンプルに移ります。
(設定により、チェック画面非表示、また自動的に本編に移行できます。)
このサンプルのswfファイルは、うちのこの効果を確認する目的でのみ、ご自由に扱って頂けます。
このファイルを別のサーバーに転載できるかどうか、またこのファイルに直リンクできるかどうか実験してみてください。
ただし、確認後は必ずサーバーから削除、また直リンクを削除するようお願いします。
万一、転載・直リンクしているにもかかわらず、「problem was not fouond.〜」と表示される場合、その状況を添えてnowloまでご連絡ください。
Download : [sample.swf] (右クリックで保存)
「無断転載」のみを防止したい場合は、この準備は必要ありません。直リンクのチェックを行わないように設定を変更するだけでOKです。
「直リンク」を防止したい場合、HTMLも修正する必要があります。
※注意:
スクリプトファイルの準備5 でオブジェクト名を変えた場合、uchinokoとある部分をそのオブジェクト名に置き換えて読んでください。
<body onLoad="window.document.uchinoko.SetVariable('_root.complete','OK');">
例:
<object id="uchinoko" classid=〜〜〜>
例:
<embed name="uchinoko" src=〜〜〜>
ここまでで最低限必要な準備はできました。
ひとまず、正常に動いているか確認してみましょう。
//チェック画面を表示 [1:する/0:しない]
pSWF.log_view = 1;
pSWF.autoplay = 0; //自動再生(チェック画面非表示時は設定無視)
pSWF.log_size = 11; //文字サイズ
pSWF.log_txt = 0xffffff; //文字色
pSWF.log_bg = 0x000000; //背景色(背景なしの場合は"none")
スクリプトの先頭部分を編集して、設定を変更できます。
項目によっては弊害が生じる場合もあるので、よく読んで設定してください。
スクリプトファイルの上にあるものから順に説明していきます。
うちのこを導入するFlashのFPSを設定します。
待機時間をセットする目安に使います。
HTML側で指定する必要がある、オブジェクトIDを設定します。
ここで決めたIDを、HTMLにも記述する必要があります。導入手順を参照してください。
また、同一ページに複数のFlashを配置し、いずれもうちのこを適用する場合は、それぞれ別のIDを設定する必要があります。
Flashの再生を許可するアドレスを、改行で区切って指定します。
swfファイルのアドレスと、表示するページのアドレスを指定しておく必要があります。
転載チェックのみ行い、直リンクをチェックしない場合は、swfファイルのアドレスだけでOKです。
前方一致でチェックするので、多くのサーバーの場合はインデックスとなるディレクトリを指定しておけば問題ないと思います。
また、ワイルドカードとして「*」の記号を使用できます。ただし、ディレクトリ(スラッシュ記号"/")をまたぐような使い方はできません。
(例)http://www.hoge.info/user/ID/flash/ (正) → http://*hoge.info/user/ID/flash/ http://*/user/ID/*/ http://*/*/ID/flash/ (誤) → http://*/ID/flash/ http://*hoge.info*ID/flash/
また、アドレスにチルダ(~)が含まれている場合、ブラウザによっては%7Eまたは%7eに変換されてしまいます。
すると正しいアドレスでも再生できなくなってしまうので、以下のように設定してください。
(例)http://www.hoge.info/~ID/ の場合 http://www.hoge.info/~ID/ http://www.hoge.info/%7EID/ http://www.hoge.info/%7eID/
このように3つのアドレスを指定すると、大丈夫だと思います。
チェック中の画面についての設定をします。
autoplayの値を1にすると、チェック終了後問題がなければ自動的に再生を開始します。
autoplayの値を0にすると、チェック終了後、画面クリックまたはいずれかのキーを押すまで、チェック画面を表示したまま停止します。
log_viewの値が0のときは、autoplayの設定に関係なく、チェックが終わり次第再生されます。
ただし、チェックに引っかかって再生できない場合は再生されず、その画面のまま停止します。
各待機時間の目安を秒で指定します。特に変更の必要はありません。
時間はFlashのFPSを基に算出するので、あくまで目安です。
ページを完全に読み込むまでの待機時間を過ぎると、まだページが読み込み中であっても処理を続行します。
許可しないアドレスでFlashが呼び出された場合に、どんな動作をするのか指定します。
再生拒否時の動作で1を選択した場合の、ジャンプするアドレスを指定します。
ここで何も指定しないと、「再生許可アドレス」で指定した一番最初のページが自動的にジャンプ先アドレスに設定されます。
act1_addurlの値を1にすると、指定アドレスの末尾に「SWFファイルのアドレス」を付加してジャンプします。
ジャンプ先にCGIを設置し、"http://〜〜/error.cgi?URL="のように引数を設定してアドレスを指定しておけば、転載されたアドレスをCGIに渡すことができます。
直リンクの場合は正規のアドレスが渡されますが、どのSWFファイルに直リンクされているのかは知ることができます。
再生拒否時の動作で2を選択した場合の、メッセージや配色を指定します。
改行したい場合は\nを使ってください。
URLチェックに引っかかった場合に、別途用意した自作のCGIにそのアドレスを送信します。
CGIに渡される変数は、「fileurl(swfファイルの場所)」と「pageurl(表示したページ)」の2つです。
ただし、表示したページのアドレスは、かなり限られた状況でないと取得できません。
また、この場合おそらく外部のサーバーからCGIが呼び出されることになるため、
CGIを設置したディレクトリにポリシーファイルを配置する必要があります。
そのファイルの場所をpolurlで指定してください。
なお、ポリシーファイルで全てのドメインからのアクセスを許可するよう設定することになるので、
ポリシーファイル及びCGIの設置場所は十分考慮してください。
よくわからない場合は、セキュリティ上やめておいた方がいいと思います。