Home > MooTools > [MooTools] テキストや画像のコピー禁止処理

[MooTools] テキストや画像のコピー禁止処理

Webサイト上にあるコンテンツのコピーを出来なくさせるプラグインを書いてみた。
Ajaxと併用するといい感じ。

ロジックは以下:

  1. 透過画像をbody全体に被せる(オプション:cover)
  2. oncopy を return false;
  3. Ctrl+AとCtrl+Cを無効にする
  4. B:前に戻る N:次に進む(オプション:move)

主な弱点と対策:

  • メニューから選ぶ「すべて選択」「コピー」
    →メニューやステータスバーを消した別窓に表示
  • ファイルへの直アクセス
    →アクセス制限、データベースの使用
  • ソース表示
    この記事この記事のようにデータベースやデータファイルからXHRでコンテンツを得る
    →jsファイルの難読化

window.openで表示

普通に表示

いずれも開発者ツールには無力です。
Ajax中心でいろいろ考えてみたけど、やっぱり画像にしたりFlash使うのが最強なのかな。
HTML5環境であればCanvasを使用するのがいいかもしれない。

ヴァニラJavaScriptや他のライブラリでも同じことが可能。

要素を指定しない場合はbody全体が対象となる。

JavaScript:
  1. new CopyBlocker($("content"),{"spacer":"images/spacer.png"});
JavaScript:
  1. (function($){
  2. this.CopyBlocker = new Class({
  3.     Implements: [Options,Events],
  4.     options: {
  5.         "spacer":"spacer.png",
  6.         "move":false,
  7.         "cover":false
  8.     },
  9.     initialize: function(area,options) {
  10.         this.setOptions(options);
  11.         this.parent = area || $(document.body);
  12.         this.s = this.parent.getStyles("paddingTop","paddingBottom","paddingLeft","paddingRight");
  13.         if(this.options.cover){
  14.             this.wrapper = new Element("img",{"src":this.options.spacer,"id":"copyblocker","styles":{"position":"absolute","top":0,"left":0,"z-index":999,"width":this.parent.getSize().x,"height":this.parent.getSize().y}});
  15.             this.wrapper.inject(this.parent,"top");
  16.         }
  17.         window.addEvents({
  18.             'keydown':function(event){
  19.                 //A=65 C=67
  20.                 if(event.control == true && event.code == 65 || event.control == true && event.code == 67) return false;
  21.                 if(this.options.move){
  22.                     switch(event.code){
  23.                         case(66): history.back(); break;//B
  24.                         case(78): history.go(1); break;//N
  25.                     }
  26.                 }
  27.             }.bind(this),
  28.             "copy":function(){ return false;},
  29.             "resize":function(){ if(this.options.cover) this.wrapper.setStyles({"width":this.parent.getSize().x,"height":this.parent.getSize().y}); }.bind(this)
  30.             });
  31.     }
  32. });
  33. })(document.id);

バグ修正

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://tenderfeel.xsrv.jp/mootools/710/trackback/
Listed below are links to weblogs that reference
[MooTools] テキストや画像のコピー禁止処理 from WebTecNote

Home > MooTools > [MooTools] テキストや画像のコピー禁止処理

最近の投稿
最近の修正
  • そしてこのSQLはわれながらよく書いたと思う 2010-11-15
  • CSVの列っていう方がいいのかな…118項目だった 2010-11-15
  • 楽天のCSVの項目が116個もあった衝撃 2010-11-15
  • オフィスで香水臭振りまくのは迷惑だと知れ 2010-11-15
  • ぐあー フレグランステロやー 2010-11-15
  • More updates...

Powered by Twitter Tools

Tag Cloud
おすすめサーバー・他
メタ情報

Return to page top