Home

WebTecNote

[jpg] まさに外道 web編

  • 2010-02-09 (火)
  • Memo

まさに外道

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

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

ロジックは以下3つ。

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

主な弱点と対策:

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

window.openで表示

普通に表示

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

Continue reading

[php + js]読み終えたページによって登場人物紹介ページの内容を変える

質問サイト見てたら面白いネタを発見!

私は今、長編小説をHPに公開しようと思っています。
キャラクター紹介のページを作ろうと思っているのですが、
読んだ読者さんによって表示される内容を変えたいのです。
例えば第一章で登場するAとBというキャラがいたとします。
読者さんが第一章を読んだらキャラ紹介のページにAとBのキャラクターの紹介が加わる。
という形にしたくて、cookieを使用しようと思うのですが、
なにぶんこのような操作ははじめてでしてどうしたらよいのかわかりません。
各章の最後のページにクッキーを食べさせるjavascriptを書いて、
キャラ紹介のページでクッキーを読み込み、キャラの説明文を表示したいです。

物語が進むにつれて、他キャラが増えたり、説明文に追記が加わるようにするにはどうしたら良いでしょう。
cookie使用があまりなく、調べましたがよくわかりませんでしたので詳しく教えていただけましたら幸いです。

独自CGI作ってもよさげな発想だと思ったんだけど、PHPとJavaScript使えば比較的簡単に出来るので、
デモとサンプルソース晒しときます。

ページ構成と概要

  • index.html
    小説のトップページ(つまり1ページ目 or 第一章)
  • 2.html
    2ページ目 or 第二章(以降、ページまたは章と同じファイル名で連番にする)
  • cast.php(cast.html)
    キャラクター紹介ページ
  • mychar.js
    クッキー発行スクリプトファイル

トップは1.htmlでもindex.htmでも何でもいいですが、
2ページ目より後のページを 番号+拡張子 にします。

サンプルはこちら

Continue reading

[Ajax + PHP] Web2.0的にHTMLソースを隠す方法

MooToolsで遊んでる時になんとなく思いついた。

HTMLソースを完全に隠すことは無理っちゃ無理だけど、サイトの内容をパクられたりしないように防御する事は出来る。
主要な柱は以下3つ。

  • ファイルの置き場所を隠す
  • ソースを読めなくする
  • アクセスを弾く

ロボット対策、右クリック禁止、Flashサイト化、HTMLソースそのものの暗号化するなど色々あるけど、
Web2.0とか言われている時代なのでAjaxを使う方法もアリなんじゃないかなと思ったわけです。

クローラーにキャッシュされず、メールアドレスも拾われず、右クリックしても無駄、「ソースを表示」選んでも主要部分は見えない。
それらの需要を大体カバーするサイト制作方法についての解説とサンプル。

簡単なデモを作ってみた

サイト構成

  • index.html
    メニューボタン、コンテンツ表示エリアを置く
  • style.css
    スタイルシート
  • view.js
    表示とかHTTPリクエストの制御をする
  • reqest.php
    view.jsからのリクエストを受けてページ内容を返す
  • page/about.php, gallery.php, contact.php
    表示するコンテンツページ

Continue reading

[mootools] Tips Bug fix - “element.getParent is not a function”

MooTools More1.2.4.2のツールチップ表示クラスTipsにあるバグの修正方法について。

主な症状

ツールチップ表示を有効にした要素にマウスオーバーしてからマウスアウトすると、
FireBugで element.getParent is not a function というエラーが出る。というもの。
(圧縮してあるとelementがbになる)
エラー行数は1142行目(未圧縮)
エラーは最初の1度しか出ない。

修正方法

原因となっているTipsのfireForParentメソッドを入れ替える。

ver 1.2.4.2 Original Code:

JavaScript:
  1. fireForParent: function(event, element){
  2.     if (!element) return;
  3.     var parentNode = element.getParent();
  4.     if (parentNode == document.body) return;
  5.     if (parentNode.retrieve('tip:enter')) parentNode.fireEvent('mouseenter', event);
  6.     else this.fireForParent(parentNode, event);
  7. }

Fix Code:

JavaScript:
  1. fireForParent: function(event, element){
  2.     if (!element) return;
  3.     var params = Array.link(arguments, {event: Event.type, element: Element.type});
  4.     var parentNode = params.element.getParent();
  5.     if (parentNode == document.body) return;
  6.     if (parentNode.retrieve('tip:enter')) parentNode.fireEvent('mouseenter', params.event);
  7.     else return this.fireForParent(parentNode, params.event);
  8. }

参照元:Tips: "element.getParent()" not working, because "element" is of type Event
このバグは1.2.4.3で修正される予定。

 Page 1 of 54  1  2  3  4  5 » ...  Last » 

Home

最近の投稿
最近の修正
  • そういえばまだMooToolsのフォームバリデーターについて書いてない 14 hrs回前
  • Chromeが早速赤さんのブログトップをキャプしなすった。まさに外道。 19 hrs回前
  • 月額98円てww http://www.quicca.com/ 19 hrs回前
  • 若いおなごにみつぐおやじたちの気持ち…今なら分かる!! 1 day回前
  • 誕生日プレゼントにヒャッホイする妹かわゆす 1 day回前
  • More updates...

Powered by Twitter Tools

Tag Cloud
Tool&AD
メタ情報

Return to page top