Flashによる画像保護
画像の保存方法とその対策はこちら。
ホームページで写真やイラストを公開したいが、コピーはされたくない。そういうケースは多いと思います。 結論を先に書くと、コピーを完全に防ぐことは不可能です。
ですが、簡単に取られないように、対策を講じておく方がいいでしょう。
次の実験は、Flashを使った画像のコピー防止です。
実験1 (注意!クリップボードの内容が消えます)
解説:
- Flashで画像を表示します
- 画像ファイル名は引数で渡しますが、画像が保存されているフォルダは秘密です
- PrintScrenを防ぐため、クリップボードを定期的にクリアします
- Flashのファイル自体はコピーされますが、Flashのファイルの中に画像は含まれていないので、画像は取り出せません。
ソースを見ていただければ分かりますが、画像の表示部分はJavaScriptを利用して、簡単に設定できるようになっています。 画像ファイル名と、幅、高さを指定するだけです。スクリプト本体はヘッダ内にあります。
<script type="text/javascript">
<!--
imageLoader("001.jpg",400,300);
// -->
</script>
JavaScriptが利用できない場合、Objectタグを書く必要がありますが、表示は可能です。
この方法で、画像を保存することはかなり困難だと思いますが、クリップボードを経由しない、キャプチャソフトを使えばコピーを取られます。
実験2
解説:
- クリップボードのクリアを止めました
- 替わりにロゴを画像の上に重ねています
クリップボードのクリアは閲覧者に迷惑をかけますし、何れにせよキャプチャソフトによるコピーは防げません。キャプチャされる事を前提で、ロゴを重ねています。
画像ファイルの上にロゴ画像を重ねているので、画像ファイルにロゴを入れる必要はありません。
実験2で使用してるFlash公開しました、ダウンロードはこちらから
実験3
解説:
- CGIを使いサーバサイドで画像を暗号化、Flashで復号化して表示しています
- ロゴ画像を自動的に画像の上に重ねています
Safariの構成ファイル一覧や、ブラウザのキャッシュを漁る方法に対する対策です。HTTPでやり取りするファイルはどうしてもコピーされてしまうので、コピーされてもいいように画像を暗号化しています。
同様の画像保護のソフトはすでにありますが、そのほとんどが有料で、事前にファイルを暗号化する必要があります。また、閲覧者は専用のActiveXをダウンロードしないと画像を見ることが出来ません。
実験3は、サーバサイドでリアルタイムで暗号化するので、事前の暗号化は不要です。サーバの負荷を考慮し、簡単なアルゴリズムで、画像の一部のみ暗号化しています。閲覧者はFlashが見れる環境なら画像を見ることが出来ます。
暗号のアルゴリズムは、暗号化テーブルを使った単純なものですし、プログラムは公開していますので、解析される恐れはありますが、それなりのスキルと時間が必要です。コピーの難易度は、かなり高くなります。暗号化テーブルを定期的に更新することで、より安全になります。
実験3で使用してるFlash+CGI公開しました、ダウンロードはこちらから
コピー出来た方、情報お待ちしています。
(注:キャプチャによる保存は可能です。ロゴの入っていない画像を保存できますか?)
|