自分の Web サイトから画像や動画ファイルをダウンロードしないようにするにはどうすればよいですか? 出来ますか?これを行う最良の方法は何ですか?
27 に答える
いいえ、できません。
見れば手に入る。
それらをあなたのサイトに投稿しないでください。
そうでなければ、それは不可能です。
クライアントが表示するには、画像をダウンロードする必要があります。多くのシナリオでは、ビデオも同様のケースです。プロキシ スクリプトを設定してファイルを提供することはできますが、それではユーザーが自分のコピーを取得できないという問題は解決しません。このトピックの詳細については、フラッシュ ビデオのダウンロードを防止または困難にする方法を教えてくださいという質問を参照してください。
もっと哲学的なコメントを付け加えたいと思います。インターネット、特にワールドワイドウェブの全体的な目的は、データを共有することです。他の人に写真/ビデオ/ドキュメントをダウンロードさせたくない場合は、それをWebに公開しないでください。とても簡単です。あまりにも多くの人が、既存のデザインに独自のルールを課すことができると考えています。Webにコンテンツを投稿し、その配信を制御したい人は、自分のケーキを持ってそれを食べたいと思っています。
PHP を使用している場合、最善の方法は で制御すること.htaccess
です。検討中のファイル、画像、およびビデオを別のフォルダー/ディレクトリに配置し .htaccess
、このディレクトリに以下の新しいファイルを作成する必要があります。
RewriteEngine On
RewriteCond %{REQUEST_URI} \.(mp4|mp3|avi)$ [NC]
RewriteCond %{HTTP_REFERER} !^http://sample.com/.*$ [NC]
RewriteRule ^.* - [F,L]
最初の行%{REQUEST_URI}
は、Web ブラウザーまたはcurl
. 2行目%{HTTP_REFERER}
は、HTMLタグを使用して、<img>
または通常はWebサイト自体である代わりに提供する<video>
例外を除いて、Webサイトからの画像/ビデオへのアクセスを防ぎます.!
http://sample.com/
ブラウザ側のその他のトリックについては、私の質問と受け入れられた回答をご覧ください。
要するに、いいえ。誰かがブラウザで画像やビデオを表示できる場合、定義上、ダウンロードしたことになります。これが Web のしくみです。クライアント サーバー ベースです。ブラウザー (クライアント) で表示できるものはすべて、リモート Web サイト (サーバー) からコンピューターに転送されています。
標準のHTMLでは、とにかくわかりません。
あなたは実際には言いませんでしたが、あなたはあなたのコンテンツにディープリンクしている人々に問題を抱えていると思います。その場合、サーバー側のコードを受け入れることができれば、これでうまくいくと思います。
- 数値IDを受け入れるページを作成し、それをサーバーファイルパスにマップし、そのファイルを開き、バイナリを応答ストリームに直接書き込みます。
- ページリクエストで、ランダムなIDの束を生成し、それらを実際のメディアURLにマッピングし、そのマッピングオブジェクトサーバー側を限られた寿命のどこかに(セッション中?)保存します。
- クエリ文字列引数として適切なIDを持つ新しいメディアページを指すメディアリンクを使用してページをレンダリングします。
- マッピングオブジェクトをクリアし、すべてのポストバックですべての新しいリンクを生成します。
これ :
- あなたのページ内から人々がダウンロードするのを止めません
- 間違いなく標準のHTMLほど軽量ではありません
- 独自の問題があります。
ただし、これは実行可能なプロセスの一般的な概要であり、ユーザーがディープリンクするのを防ぐのに役立つ可能性があります。
多くの人が言っているように、誰かがコンテンツをダウンロードするのを止めることはできません。あなたはできません。
しかし、あなたはそれを難しくすることができます。
透明な で画像をオーバーレイできますdiv
。これにより、人々が画像を右クリックするのを防ぐことができます (または、 の背景をdiv
画像に設定しても同じ効果があります)。
相互リンク (つまり、他の人があなたの画像にリンクしている) が心配な場合は、HTTP リファラーを確認して、自分のものではないドメインからのリクエストを「別のもの」にリダイレクトすることができます。
可能性を減らすことはできますが、なくすことはできません...
画像またはビデオをフラッシュ形式で配置します。よく働く。
You can mark folders or files so that they don't have read access (any of the main web servers support this). This allows you to store them on the server without any level of access to the outside world. You may want to do this if you have a service that generates images for someone else to download later, or if you use your web account for FTP access, but don't want anyone to view the files. (i.e. upload a .bak file to the server for someone else to FTP down again).
However, as others have said, getting into copyright areas where people can view the image or video but not save them locally is not fully possibly, although there are tools to discourage illegal usage.
いいえ、ちがいます。あなたは右クリックや類似のものをブロックするかもしれませんが、誰かがそれをダウンロードしたいなら、彼はそうします、私を信じてください ;)
写真やビデオを含むページを表示するとすぐに、アイテムがブラウザーの一時フォルダーにダウンロードされます。したがって、ダウンロードしたくない場合は、投稿しないでください。
これは古い投稿ですが、動画の場合は、MPEG-DASH を使用してファイルを難読化することを検討してください。さらに、別のストリーミング サーバーを必要とせずに、ユーザーに優れたストリーミング エクスペリエンスを提供します。この投稿の詳細: Web ページでのビデオ/オーディオのダウンロードを無効にする方法?
ユーザーが見ることができる画像はすべてコンピューターに保存でき、それに対してできることは何もありません。ユーザーが見ることになっていない他の画像へのアクセスをブロックしたい場合は、実際にそのようにしています:
- イメージタグの「src」へのすべてのリンクは、実際にはサーバー上のコントローラーに送信されるリクエストです。
- サーバーはその特定のユーザーのアクセス権をチェックし、ユーザーが画像にアクセスできると想定されている場合は画像を返します。
- すべての画像は、ブラウザから直接アクセスできないディレクトリに保存されます。
利点:
- ユーザーは、アクセスを意図していないものにはアクセスできません。
欠点:
- それらのリクエストは遅いです..特に、同じページにたくさんの画像があります. 実際、それを加速する良い方法を見つけていません..
画像を背景画像に設定し、透明な前景画像を持つことができます。
画像/ビデオの盗難を止めることはできませんが、通常のユーザーにとってはより困難にすることはできますが、私たちのようなプログラマー (つまり、Web プログラミングをほとんど知らない泥棒) にとってはより困難にすることはできません。
あなたが試すことができるいくつかのトリックがあります:
1.) YouTube やhttp://www.funnenjoy.comのような他の多くのサイトと同じようにフラッシュを使用する。
2.) div オーバーラップまたは背景画像の設定 (ただし、ほとんど感覚のないユーザーは、要素の検査またはその他の開発者向けオプションを開くことで、すべてのリソースを簡単に保存できます)。
3.) 右クリックや CTRL + S などの特定のキーを JavaScript で無効にすることができますが、主な欠点は、ユーザーが JavaScript を無効にすると、すべてのトリックが失敗することです。
4.) オンライン ディレクトリ以外に画像を保存し (Web サーバーにフル アクセスできる場合)、画像や動画が必要になるたびに PHP などのサーバー側言語でそのファイルを読み取り、画像 ID を時々変更するか、自動的に実行できるスクリプトを作成します。アクセスごとにIDを変更します。
5.) Apache で .htaccess を使用して、他のサイトによる画像のリンクを防ぎます。このサイトを使用して、.htacess http://www.htaccesstools.com/hotlink-protection/を自動的に生成できます。
<body>
タグのすぐ内側に透明な gif 1px x 1px を挿入します。
<body><img src="route-to-images/blim.gif" class="blimover">
次に、次のようにスタイルします。
.blimover {
width: 100% !important;
height: 100% !important;
z-index: 1000 !important;
position: absolute !important;
top: 0 !important;
left: 0 !important;
}
これにより、ページからクリック機能が削除されますが、人々がコンテンツを盗むことは確実に阻止されます!
<div>
、などに同じことを適用できます。それに応じて名前を付けるだけで<section>
、<article>
コピーや画像がリッピングされるのを防ぐことができます。
何もスクリーングラブを止めるものはありませんが……
許可されたユーザーだけがコンテンツを取得できるようにする場合は、クライアントとサーバーの両方で暗号化を使用する必要があります。
ビデオとオーディオの場合、優れたソリューションはコンテンツ保護と暗号化を備えた Azure Media Services です。Azure メディア プレーヤーをブラウザーに埋め込むと、Azure からビデオがストリーミングされます。
ドキュメントと電子メールについては、特別なクライアントを使用する Azure Rights Management を見ることができます。残念ながら、1 回限りの使い捨てコードを除いて、現在、通常の Web ブラウザーでは機能しません。
ただし、これがどれだけ安全かは正確にはわかりません。他の人が指摘しているように、セキュリティの観点から、ダウンロードされたバイトが「攻撃者の」RAM に入ると、それらはなくなったも同然です。この場合、100% 安全な解決策はありません (間違っていたら訂正してください)。ほとんどのセキュリティと同様に、目標はそれをより困難にすることなので、99% は気にしません。