ホーム > ネット > 画像へのリンクを禁止する方法
目次 | 元のページ 前のページ | 次のページ サイトマップ | ページEND

画像へのリンクを禁止する方法


画像へのリンクを禁止する方法



画像ファイルへの直リンクを禁止したい場合、「Apache(アパッチ)」等現在主流となっている ウェブ サーバー用 OS での、サイトアクセスを制御するためのファイル 「 .htaccess 」 で、「 RewriteEngine 」 を 「 on 」 にして、制限したいアクセスを制限する設定を記述することで、実現できます


記述場所 記述内容
.htaccess # 画像ファイルへのリンクを禁止
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?abhp\.net [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !google. [NC]
RewriteCond %{HTTP_REFERER} !search?q=cache [NC]
RewriteCond %{HTTP_REFERER} !yahoo. [NC]
RewriteCond %{HTTP_REFERER} !bing. [NC]
RewriteCond %{HTTP_REFERER} !msn. [NC]
RewriteRule .(jpg|png|gif|pdf|svg|js|css)$ – [NC,F,L]
説明 「 .htaccess 」 ファイル
「 .htaccess 」 ファイルは、サイトのルートディレクトリに配置しておくと、配下のディレクトリにも効果がおよびます

「 .htaccess 」 ファイル内に、テキストエディタで、「記述内容」を記述します
「 # 」 以降の記述は、コメントになります
ewriteEngine on
「 RewriteEngine 」 は、Apache サーバーの 「 mod_rewrite 」 モジュールを利用しますという宣言文で、「 RewriteEngine 」 が提供する機能を利用する際に記述します
RewriteEngine on / RewriteEngine off
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?abhp\.net [NC]
自サイトなど、ファイルへのアクセスを許可するドメインを記述、アクセスを許可するドメインが複数ある場合、本行を複数行記述します

URLを記述する際は、「https://」から記述し、先頭に、半角の「^」(ハット記号)を、「.」(ドット記号)には、「\」のように半角の「\」(バックスラッシュ)を前に加える必要があります

当サイトのドメインは、「 abhp.net 」 ですが、先頭に 「 www 」 を付けてもアクセスできますので、「 (www\.)?abhp\.net 」 との記述になっています

「(s)?」、「(www\.)」 は、指定されても、省略されてもアクセスできるようにする設定です
RewriteCond %{HTTP_REFERER} !^$
正規表現で、「^」は先頭を、「$」は末尾を表し、先頭と末尾の間に文字列が無いので、「ブランク」という意味になります

ファイアウォールやプロキシ等で、リファラ(HTTP_REFERER)※情報がブランクされていた場合でも、アクセスを許可します

1.セキュリティソフト利用者への対処

ブラウザがウェブサーバに対してReferer情報を提供するのを阻止するセキュリティソフトがあり、そのようなユーザに対しては、アクセスを許可して良いはずの場面でアクセスを拒否してしまうのを防ぐために、Referer情報が得られなかった場合には無条件で許可するようにします

2.URLを直接アドレス欄に打ち込んでアクセスした場合への対処

直リンクを防ぐのが目的ですので、URLを直接入力してアクセスされた場合には許可する必要があります(※URLを直接入力した場合は、「直前にアクセスしたページはない」ので、Referer情報がありません)
RewriteCond %{HTTP_REFERER} !google. [NC]
RewriteCond %{HTTP_REFERER} !search?q=cache [NC]
RewriteCond %{HTTP_REFERER} !yahoo. [NC]
RewriteCond %{HTTP_REFERER} !bing. [NC]
RewriteCond %{HTTP_REFERER} !msn. [NC]
google、yahoo 等、各検索エンジンや、画像検索時のアクセスを許可します

リファラ※に「google」や「yahoo」 等の文字列を含んでいる場合アクセスを許可するという指定です
RewriteRule \.(jpg|png|gif|pdf|svg|js|css)$ – [NC,F,L]
RewriteRuleは、URLを書き換えるための指示子です

直接アクセスを禁止するファイル種別を、ファイルの拡張子で指定します
「.jpg」、「.png」、「.gif」、「.pdf」、「.svg」、「.js」、「.css」、各拡張子ファイルへの直接アクセスを禁止しています
[NC] オプション
nocase(no case)
大文字と小文字を区別しないようにします (どちらも同じに扱う)
[F] オプション
forbidden(force URL to be forbidden)
HTTPレスポンスの 「 403 (Forbidden) 」 を返します

HTTPレスポンスの 「 403 」 はアクセス権限がないことを示し、強制的にアクセス禁止という意味になります
[L] オプション
last(last rule)
Rewrite機能によるURL変換を終了します

書き換えた URL が後に続くルールによって、これ以上書き換えられることがないように指定します


※.Referer (リファラ) とは
Referer (リファラ) は 「参照元(リンク元)」(直前にアクセスしたページ情報)のことで、閲覧ブラウザがホームページを閲覧する際、ページや画像などの情報を取得する都度、この Referer 情報をウェブサーバに送信しています
このReferer (リファラ) 情報を調べることにより、閲覧されていたページが自サイト内にあるのか外部サイトにあるのかが判断できます



「 mod_rewrite 」 正規表現



テキスト
. 任意の1文字
[文字] いずれかの1文字 【例】 [abe]ではa,b,cいずれかの1文字を意味する [a-z]では、aからzすなわちアルファベットの小文字1文字を意味する [-A-Z]では、「-」という文字もしくはアルファベットの大文字1文字を意味する [-0-9a-zA-Z]では、「-」という文字、0から9、アルファベットの小文字・大文字いずれか1文字を意味する
[^文字] これら以外の1文字 【例】 [^abcd]では、a,b,c,d以外の1文字を意味する [^0-9]では、数字以外の1文字を意味する
文字列1|文字列2 文字列1もしくは文字列2
量指定子
? 0回または1回の出現
* 0回以上の繰り返し
+ 1回以上の繰り返し
{n} n回の繰り返し 【例】 [0-9]{4}は、0000~9999までの数字(文字列)を意味する
{n,m} n回以上、m回以下の繰り返し 【例】 [0-9]{1,4}は、0~9999までの数字を意味する
{n,} n回以上の繰り返し
その他
(文字列) グループ化(選択肢の境界を明示したり、後方参照のために使用する) 【例】 一般的に (.*) のように使われる
^ 行頭(文字位置の指定)
$ 行末(文字位置の指定)
\文字 特殊文字をエスケープ(特殊な意味を打ち消して、通常の文字として扱う) 【例】 URLのドット「.」は任意の1文字を表現する正規表現「.」となってしまうので、「ysklog\.net」のようにエスケープ処理する
- 置換を禁止する(URL のマッチングだけを行い、置換は行わない)。アクセス禁止の時などに使用する。 また、「C」フラグとともに使用することで、置換をせずに複数のパターンを適用することができる。
! パターンを否定する否定文字(パターンの前に用いる)

【mod_rewrite】正規表現 – mod rewrite 」 より





他人のサイトページの画像を勝手に収集し 自分のコンテンツとして表示するサイトを発見



「 Google 」 の 「 Search Console 」 「 サイトへのリンク 」 を見ていた際、当サイトの画像ファイルに対し、ある特定のドメインから大量にリンクが張られていることに気づきました

どんな使い方をしているのかな? ・・・ と疑問に思い、リンク元のページを覗いてみると ・・・


なんと、中央のメインコンテンツで、当サイトや他サイトの画像をリンク表示し、その間に、そのサイト用(と思われる)広告を織り交ぜて表示、さらに、その両サイドにも、そのサイト用(と思われる)広告を表示するという、オリジナルコンテンツの存在しない、他人の画像コンテンツを勝手に使って自分の(と思われる)広告を表示するという、(悪質な?)パクリページでした

画像ファイルには引用元を示す表示も無く、画像ファイルには、表示元の画像ファイルへの直リンクが張られていました


こんな性質の悪いサイトに自サイトのコンテンツを勝手に使われるのは真っ平ごめんということで、画像ファイルへの直リンクを禁止する設定を行いました

目次 | 元のページ 前のページ | 次のページ サイトマップ | ページTOP
ホーム > ネット > 画像へのリンクを禁止する方法
   

© 2014 abhp.net All Rights Reserved.

参考情報


【.htaccess】画像への直リンクを禁止する方法。 - ONZE
【mod_rewrite】 RewriteEngineとは? – mod rewrite
【mod_rewrite】正規表現 – mod rewrite
URLを書き換える -Rewrite機能 Apacheの設定 [Smart]
2-3 直リンクを防ぐには?…禁止と言っても無駄 [ホームページ作成] All About
3-3 直リンクを防ぐには?…禁止と言っても無駄 [ホームページ作成] All About
画像直リンクの禁止 - サーバー・プログラム - マニュアル - レンタルサーバーならロリポップ!

ページTOP
ページTOP
ページTOP
ページTOP