web小ネタ:コピー禁止など

2013/3/20 [10:09:04] (水) 天気

kindleやibooksの新刊・既刊情報を掲載、表紙画像をそれなりの大きさで表示しようと思った時に、まんまimgタグで表示させるのはちょっと無造作すぎるなあ、と。自分で描いたイラストならともかく、お願いしたりいただいたりしたイラストだ。


そこで「画像コピー禁止」を検索して見つけた下記の方法で細工。


・画像の上で右クリック禁止伝統技

「onContextMenu="return false"」


・画像を簡単にドラッグ&ドロップできないように。

 表示する画像はcssで背景に指定して、表側のimgタグには透過gifを表示。


HTML
<img src="space.gif" width="640" height="480" alt="表紙画像"
style="background-image:url(http://hyoushi.jpg);" class="image"
 />

CSS
.image{
  background-repeat:no-repeat;
  background-position:center center;
}

この方法を見つけたときは、よく思いつくなあ、なるほどなぁと呆れつつ感心。webなんて表示しているものはどうやったって取得されちゃうんでこの方法もその場しのぎ(例えばhttpでソースを取得しちゃえば画像ファイルのありかはわかる)


また、コピーされたくないテキストは以前に書いた「個人情報をちょっと防衛」のように。

・コンテキストメニューで右クリックは禁止

・ajaxを使って呼び出されるスクリプトでリファラなどをチェックして表示するorしないを制御

・表示してもjQueryで 「.bind("copy", function () { return false})」コピー禁止

にしておく。

マウスの右クリックもできず、キーボードショートカットでのコピーもできない状態になる。

右クリックできるように、とJavascriptを切ると当然ながらAjaxが効かないので、表示すらしない。


WEBは性善説を根拠にフリーであるべき(お金・対価がタダという意味ではない)と思うんだけど、残念ながらなかなかそうもいかないようで、ちょっとだけ。


ついでに。


ここんとこ雑記帖が重い=表示が遅いのでイラっとしていた。ここで何度も言うけど「WEBは早さが唯一の絶対正義」そんな状態なのに、各記事にカテゴリをつけるため、データベースにカテゴリ用テーブル、カテゴリと記事のリレーション用テーブルを追加。そりゃまた当然遅くなる。


SQLを改めて見てみたらば、indexをつけてたと思ってたテーブルの(いろんなSQL文の where句で最もよく使う)カラムにindexがついてないのに気づいて慌ててつけた。

結果、それまで体感で表示まで5〜7秒かかっていたのが3〜5秒に短縮された。

それでも遅いんだけど。これ以上の短縮はキャッシュで中間コードを保存するとか、静的ページを生成するとかになる。スクリプトの書き換えや運用も含めて考えなきゃいけないかな。

もしくはajaxのコンテナだらけにする…って、ajaxにすると検索エンジンが拾えないので却下だ。


サイトの細工やチューニングは、考え出すと・やりだすと面白いもんです。


[03/20 18:27:21] 追記。ということで、一部のパーツ単位で生成しておいて、DBからデータを取るのではなく、静的パーツを呼び出すだけにした。ほんの少し早くなった、ような気がする。



[2013/12/30 09:54:31] 追記。

直リンク禁止の定番も。

.htaccessで制御する(Apache)


SetEnvIf Referer "^http//example.com" is_ok
order deny,allow
deny from all
allow from env=is_ok

.htaccess を置いたディレクトリ以下に適用される

・リファラをチェックして、自サイトからのアクセスなら 「is_ok」を設定。

・この指定の優先順位は、1)拒否 2)許可。

・すべてのアクセスを拒否する

・is_ok が環境変数に設定されていれば許可する



[2014/01/13 12:38:03]追記。

.htaccess でキャッシュコントロール


<FilesMatch ".(css|js|png|jpe?g|gif)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
<FilesMatch ".(pl|cgi|php)$">
Header unset Cache-Control
</FilesMatch>

・cssやJavascript、画像などは1週間キャッシュする

・perlやphpはキャッシュしない


続・ハイパフォーマンスWebサイト ―ウェブ高速化のベストプラクティス

『続・ハイパフォーマンスWebサイト ―ウェブ高速化のベストプラクティス』

スティ-ブ・サウダ-ズ

<<2026/1>>
    123
45678910
11121314151617
18192021222324
25262728293031
検索:

【最近の20件】