プロが教えるわが家の防犯対策術!

お世話になります。どうぞよろしくお願い致しますm(_ _)m

そもそもPerlの質問カテゴリーかどうか分りませんが、
Perlで記載している私の画像掲示板内の画像盗用で困っています。

右クリック禁止やイメージツールバーの表示を出さないようなやり方にプラスして、
ソースから拾われないために.htaccessで画像のURLを直リンク禁止にしても

「ファイル→名前を付けて保存」

とされたら結局盗用されてしまいます。

この「名前を付けて保存」を禁止させる方法があるでしょうか?
.htaccessでやれるのでしょうか?それとも無理なのでしょうか?
どうぞ、教えてください。

以下、上記の説明のために私が入れている防止策です。
<meta http-equiv="imagetoolbar" content="no">
<meta http-equiv="pragma" content="no-cache">
をhead間に入れて、

<img src="sample.jpg" border=0 onContextmenu="return false" galleryimg="no">
を画像のところにいれて、

画像フォルダには、.htaccessで
SetEnvIf REFERER "www.sampledesu.com" Lilith
order deny,allow
deny from all
allow from env=Lilith

という訳です。

名前を付けて保存が出来ないようにすれば、
これで私ぐらいのレベルの人であれば盗用はできないと思うのですが…。

質問の仕方が下手で理解しずらくて申し訳ありませんが、どうぞよろしくお願い致します。

A 回答 (15件中1~10件)

Flashを使ったサイト見つけました。

参考にどうぞ。
http://www.tmp.bufsiz.jp/laboratory/001/index.html
    • good
    • 0

> ANo.15


> ヘッダー確認すると理由は分かると思います。
これかな?
http://cssbug.at.infoseek.co.jp/detail/winie/b06 …
このバグのせいで意図せず保存できないページを作ってしまうと
なぜ保存できないのか非常に悩みますね^^;

# IE7では直っているのかが気になるところ。

Firefoxでの保存も試していて気づいたのですが、
@import url でインポートしたCSSは保存されないようでした。
ただ、ちゃんと保存できる拡張はあるようです。


> http://kikky.net/pc/rightclick3.php
保存以前に画像が表示されてない(>_<)
そして、「画像を直接表示する」をクリックすると画像が表示されてしまった( ̄□ ̄;)
たぶん、cssのrightclick_testimg2.phpにPHPSESSIONIDがついてないせいだと思います。

ただ閲覧できたとしても、名前を付けて保存で
外部スタイルシートにかかれた背景も保存はできると思うので効果のほどはどうだろう?
    • good
    • 0

#11です。


>実際にGIF化が行われてはいないようです。
お返事ありがとうございます。予め用意されていたGIFファイルが保存されたようですね。納得致しました。

>私も一生懸命に探しましたが時間切れです。
お手間を取らせてしまったようで、申し訳ないです。

>フラッシュのご回答の部分は私の理解が不足しております。
具体的なサンプルをご覧頂ければ分かりやすいと思ったのですが、良いサイトが見付かりませんでした。

今回の質問で改めて、Flashが一番有効な手段だと、私は思っています。ロゴ等を入れる場合もFlashを使えば、画像ファイルを変更することなく、簡単にロゴを入れる事が出来ます。


------------------------------------------------
>> ?http://kikky.net/pc/rightclick.html?
>テストページ(2)で試しに保存してみましたけど

こちらのページの保存関してですが、保存できる方に1票です。

WindowsXP IE6で確認してみました。

名前をつけて保存→Web ページ、完全 で保存すると

 右クリック禁止のやり方(2) - パソコンQ&A.htm
 右クリック禁止のやり方(2) - パソコンQ&A.files

htmlファイルとフォルダが保存され。フォルダの中に

 rightclick_testimg2.php

という名前のファイルがあります。これの中身はJPEGのようです。
拡張子をjpgに変えると、画像ファイルとして開けます。
保存できない予定の、黒い背景に、青いモヤモヤと、光の点?の画像です。
    • good
    • 0

> 保存のHTMLファイルをブラウザで開くと画像は閲覧可能です。


> そのことをJPEG画像と勘違いされているのではないでしょうか?
ええと、私がANo.12で言っていたのは、
 保存された"rightclick_testimg2.htm"という名前のファイルは
 htmという「間違った拡張子」が付けられてしまっているものの、
 これが保存されたくない画像ファイルのようだった
と言うことです。

"rightclick_testimg2.htm"は拡張子はhtmでしたが、
テキストエディタで開いてもHTML文書ではなくバイナリデータのようでしたし、
極窓のファイル形式判別でもJPEGファイルという判定、
画像閲覧ソフトで開くと「拡張子が間違っていますが修正しますか?」と言うメッセージが出るなど
JPEG画像ファイルで有るとしか考えられない結果だったので
私はJPEG画像ファイルであると判断しました。
(拡張子なんてファイル名と同じように自由に付けられるわけで必ず信用できる訳ではないので。)

あと、「ブラウザで開くと画像は閲覧可能です。」との事ですが、
私の環境では、拡張子がhtmのままではブラウザは画像として開いてはくれませんでした。
(JPEGファイルの内容が無理矢理テキストとして表示される。)
環境はWindows XP SP2、IE6です。


盗用防止なら、今まで挙げられている中では
ANo.5で触れられているロゴや署名を画像内に入れる方法が
なかなか良さそうに思えます。
直接的に盗用を防ぐ効果はないかもしれないけど、
盗用していると言うことが他の人にもわかりやすく見つけやすくなりそうという意味で。


参考: 海外ファンサイト事情
http://www.yuzuriha.sakura.ne.jp/~akikan/kaigai/
 画像の無断転載に関する話題が載っていたので一応紹介
    • good
    • 0

>

http://kikky.net/pc/rightclick.html
テストページ(2)で試しに保存してみましたけど
保存先を覗いてみると"rightclick_testimg2.htm"という名前の
jpgファイルがちゃんと保存されてました。
拡張子がhtmになってるだけでこれが保存されたくない画像ファイルですよねえ…。

上のはIE6でやってますが、
Firefoxではどうかと試してみると、
「ページ情報」のメディアタブから
背景画像を選択して保存することも可能でした。
拡張子はjpgではなかったけど、プレビューされるしすぐに分かる。

何か私が勘違いしてるのかもしれませんが、
これよりはANo.11のようにFlashを使う方が
保存に手間をかけさせるという意味では良さそうな気がします。
とにかく保存を面倒にしたいなら色々組み合わせるのもありかもしれませんが。


> ANo.11
> 定期的にクリップボードにデータをコピーする方法で、PrintScreenに対抗できるようです。(嫌われそうですが・・・(^^;)
私が最初にこれを知ったときは閲覧者に対する嫌がらせかと思ったくらいです^^;
この手段も、クリップボードを経由せず直接画像ファイルに保存する
ソフトとか使った場合はたぶん無力なんだろうなあ。

# そういえば、あるサイトを丸ごと保存した後
# ソースコードを見て初めて右クリック禁止に気づいたことがありました。
# そういうのが嫌で普段JavaScriptを切ってるので本当に気づかなかった。
# 背景画像にする方法を初めて知ったのは、実際にやってるページのソースコード見たときだったりする。


> ANo.10
> Javascriptで別枠及びメニューバー非表示
ブラウザによっては非表示にならないと思いますが、それでも良ければ。
でも、非表示になりそうなのって手持ちのブラウザだとIEくらいしかなさそう。
IE以外だとたいてい名前を付けて保存のショートカットキーもあるんだよねえ。

> http://oshiete1.goo.ne.jp/qa2414018.html
CGI経由でFlashを出力してるだけなら
Flashファイルのパスは分からなくてもFlashファイル自体は
結局CGI経由でダウンロードできてしまいませんか?
拡張子は.cgiかもしれませんけど。

この回答への補足

私の環境は、Windows2000+IE6ですが画像の保存はできません。
保存のHTMLファイルをブラウザで開くと画像は閲覧可能です。
そのことをJPEG画像と勘違いされているのではないでしょうか?
FirefoxやIE以外のブラウザは私はインストールしてないので分りません。

補足日時:2007/02/08 13:29
    • good
    • 0

#3です。


別の方法で解決しそうなので、蛇足かもしれませんが・・・

>CGIが呼び出されるたびにFlash画像が作成されるのでしょうか?

手順:
・画像を読み込んで表示するFlashを作成します
・画像ファイル名をパラメータとしてFlahに渡します(この部分をCGIで処理します)
・パラメータはソースに出てしまうので、パラメータは暗号化します

上記の場合
・Flash自体に画像は持たないので保存されても画像は取り出せません
・ローカルに保存されたFlashでサーバの画像は読み込めません(Flash側で設定)
・画像ファイル名はバレない

実際試した訳ではないですが、上記の事が可能だと思います。


>ファイル→名前を付けて保存でGIF化されるみたいです。
この保存に関しては、私の環境では再現できませんでした。
現在表示されているFlashの画像が自動的にGIF化され、保存されるのでしょうか?
ブラウザは何を使用されていますか?
検証してみたいので、もう少し詳しく教えてください。m(__)m

これで保存されてしまうなら、全く意味がないですね。(;;)

---------------------------------

PrintScreen対策について

IE + JavaScriptですが

<html>
<head>
<script language="JavaScript"><!--
function clipboardClear() {
clipboardData.setData("Text", "コピー不可");
}
// --></script>
</head>
<body onload="setInterval('clipboardClear()', 200)">
てすと
</body>
</html>

定期的にクリップボードにデータをコピーする方法で、PrintScreenに対抗できるようです。(嫌われそうですが・・・(^^;)
但し、設定でクリップボードの操作が禁止される場合もあります。

Flashでもクリップボードを操作できるので、Flashでやれば、全てのブラウザで有効かもしれません。
    • good
    • 0
この回答へのお礼

色々とフォローしていただいてありがとうございます。
FLASHのGIF化についてですが、私が話を複雑化してしまったようです。
実際にGIF化が行われてはいないようです。

私の環境ははWindows2000+IE6ですし特別なソフトはPC内に入れていません。
私がテストしたのが、たまたま、自分のサイトに貼り付けたヴァリューコマースの
アフェリエイトプログラムのヒルトンホテルのFLASHバナー(468*60px)でした。

そのページを「ファイル→名前をつけて保存」すると、
画像フォルダの中に、さらに、htmlbanner.filesというフォルダができていて、
その中に、ヒルトンホテルのアニメーションGIFと、拡張子の無い「jsbanner」が入っていました。
そのアニメーションGIFを良く見るとフラッシュの画像とは違う感じです。

結局のところ、バリューコマースのFLASHバナーは、
FLASHがプラグインされていないお客さんも想定してか、GIF画像に変わるようになっているようです。
実際にソースからフラッシュ広告だけのURLから、フラッシュを表示させみました。
そして、そのフラッシュ広告を保存してみるとアニメーションGIFになっていました。jsbannerというファイルはありません。
また、JavaScriptが無効なお客さんのためには、広告タグには、アニメーションGIFが広告バナーになるようになっています。
つまり、ヒルトンホテルのバリューコマースのFLASH広告タグは二重・三重の工夫がされている感じでした。
それが思わぬ、質問の複雑化をまねいた原因になってしまいましたm(_ _)m

このことは、バリューコマースのサイトを訪問しても確認できないものです。
つまり、広告用のフラッシュの見本を見ても通常のフラッシュになっています。
実際に確認するためには、ヒルトンホテルのバリューコマースのフラッシュバナーを貼ったページをご覧いただかなければならず、
私も一生懸命に探しましたが時間切れです。(私自身のサイトは公開できませんので悪しからずご了承ください。)

ということで、質問内容が拡大しており申し訳ないです。

フラッシュのご回答の部分は私の理解が不足しております。
また、クリップボードのコピーの方法は、そういう方法もあるということで、教えていただいてありがとうございます。
ということで、FLASHは今後有効な方法なのかと思いました。
長々と申し訳ありません。ありがとうございました。

お礼日時:2007/02/08 10:05

Perl超初心者です。

私も保存されない方法を探しています。

現在考えているのは、まどろっこしいのですが、
Javascriptで別枠及びメニューバー非表示、
かつそこに以前こちらで質問させて頂いた方法で
Flashを表示させようと思っています。

http://oshiete1.goo.ne.jp/qa2414018.html

が、いろいろあってまだローカルでしか試していません。

後まだ試していないのですが、

http://www.tohoho-web.com/wwwxx008.htm

↑もやってみようと思っています。

画像の場合flash化してもスクリーンショットを撮られたら
おしまいとは言え、私の場合、他に動画や音楽もあるので、
ある程度はふせげれば…と思っています。
パケットモニタなどでflashの置き場所を
拾われてしまったり、音声を他の機器で録音されるのは、
さすがにしょうがないと思いますが、
この方法の穴は他に何があるでしょう?

便乗質問で申し訳ないのですがよろしくお願いします。

この回答への補足

私の質問の本意は、
私のサイト内の画像掲示板の画像を盗用して(画像を保存されて)、
他サイトに他人になりすまして投稿されることを防止することが目的です。

つまり、画像を保存されることが面倒であれば防止策としてはOKなんです。
逆に見た目の防止策を過剰にすることによるサイトの人気低減の方が心配です。
そのために過度な防止策はしたくないというのが希望なんです。

メニューバーの非表示やFlash化はその意味で少し過度だと感じます。
Flashだとダウンロードのスピードが遅いことが問題です。興味はありますが…。

また、キャッシュの件で、
画像掲示板ですので一度写真(画像)を見たら次回は見ないのが普通なので、
メタタグでキャッシュを"no"としても、いらつく問題とは抵触しないでしょうが、
キャッシュ先まで画像の保存の心配を過剰にしなくても良い訳ですので、
<meta http-equiv="pragma" content="no-cache">
は外そうかなと考えています。

つまり、何が何でも保存を阻止する考えとは違うという質問であることをご理解ください。

補足日時:2007/02/08 12:33
    • good
    • 0

CGI、PHPが使えないと厳しいですが…


実際に[ファイル]→[名前をつけて保存]でも保存されていません。

この回答への補足

今回の私の質問に対する答えが出たような感じがします。
ご調査していただきありがとうございます。

私のサーバーはCGIもPHPも使えますが、
PerlはまだしもPHPはチンプンカンプンですので、最終のお礼までかなり時間がかかりそうです。
Perlプログラム内にPHP文を入れて良いのかとかいう素朴な疑問から解決していかなければいけません。
サーバー負荷とかの問題もあるのかもしれませんが、目からウロコ状態です。
とりあえず一時お礼とさせていただきます。ありがとうございました。

補足日時:2007/02/07 07:48
    • good
    • 0
この回答へのお礼

あれれ?
今やっと気付いたのですが、kikanboさんは、すでにANo.2で同様のことを
お答えしていただいていたのですね?
大変に失礼を致しました。
お礼かたがたお詫び致します。
oncontextmenu="return false;"ばかり目がいっていて、最後まで見ていませんでした。
恥ずかしいですし、本当に申し訳ありませんでした。

実際にできるかどうか後日あらためて実験してみます。
かなり時間がかかりそうですが道が開けた感じです。
本当にありがとうございました。(a_lemon)

お礼日時:2007/02/07 08:15

画像を普通に表示しないで、背景画像にしてごまかすとか?



背景画像において、表面は透明gifにする??
びみょーに効果がありそうです。
    • good
    • 0
この回答へのお礼

実は、一番最初の質問をさせていただいたあと、
同じアイデアが私もひらめいて、その後私もこの方法で実施しています。
効果はかなりあります。

この「教えてgoo」は私も数々の恩恵を受けておりますので、
私と同じような後続の人のために少しだけその旨を書かせていただきます。

画像掲示板のCGIですので、サーバー管理者にImage::Sizeをインストールしてもらいます。
Image::Sizeをインストールすると投稿画像の大きさ(縦横ピクセル)がわかります。
それをデータセルの大きさにして、背景画像に投稿画像を入れます。
また、透過GIFを画像の大きさにしておきます。
こうすると、ブラウザ上は同じですし右クリックも有効ですが保存はできません。
ソースは表示されますのでソースから画像URLを入力しても、
私の当初質問の通り、.htaccessで防げば画像は見られません。
Image::SizeのCGIでの記載は次のようにしています。
use Image::Size;
($globe_x, $globe_y) = imgsize("$image[$i]");
※$image[$i]は、画像掲示板内での画像のファイル名になります。

しかし、この方法でも、プリントスクリーンはダメですし、
ファイル→名前を付けて保存だと同じようにごっそりともっていかれます。

解答欄に長々と申し訳ありません。

kikanboさん、ありがとうございました。

お礼日時:2007/02/07 07:46

#6さんへ


JavaとJavaScriptは違いますよ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!