【.htaccess】特定の相手のアクセスを拒否・サイトに制限をかける

このブログを始めて以来、ちょくちょく記事内容や画像を無断盗用されています。
それだけ皆さんの参考になっているのだと思えば喜ばしいのですが、たまたま弊社記事と盗用記事の両方を見かけたお客様にこちらがパクったのだと勘違いされて大変悲しい思いをしたので、パクリを見かけたら削除をお願いしたり、Googleに著作権侵害申し立てをしたりしています。
盗用は減らないのでイタチごっこですし、いい加減に放っておこうかなと思うこともあるのですが、会社としての信用が損なわれるという実害は見過ごせない。

ということで相変わらず申し立てはしているのですが、そもそも盗用するようなひとは今後うちのサイトに入れないようにすればいいんじゃないか、と気づいた(遅い)ので分かっている相手のドメインやIPアドレスのアクセスを弾く設定をしてみました。
同じく無断転載にイラッとしている方や、悪質なユーザーに困っているサイト運営者さんのご参考になれば幸いです。

.htaccess(エイチティーアクセス)ファイルでアクセス制限をかける

サーバーの挙動を制御するApacheというプログラムソフトに対する設定を行うファイルが.htaccess です。

こうして言葉にすると何を言っているのか良く分かりませんね。
要するに、自分のサイトが間借りしているサーバーに対して『 こういう時はこうしてほしい 』 というお願いを記述するファイルが.htaccessということです。

今回ご紹介するのは、その.htaccessファイルに、怪しいドメインや来てほしくないホストを記入して、サーバーでアクセスを弾いてもらう方法です。
うっかり一般の人も使っているドメインを弾くとその人達も入れなくなってしまうので、ドメイン指定をする場合は慎重に行ってください。

また、.htaccess ファイルは記述やアップロード方法を間違えるとサイトそのものがエラーで表示されなくなったりもしますので取り扱いは慎重になさってください。
また、何か間違えてしまった時にすぐ元に戻せるように念のため元の.htaccess ファイルのコピーを保存しておきましょう。

今の.htaccess ファイル状態を保存・確認

いつも.htaccess ファイルを編集して使っている方なら良いのですが、今まではテンプレートを借りてそのまま運営していたので今回初めて.htaccess ファイルをいじる、という方はまず現状の確認と、コピー作成を行ってください。

FFFTPなどのFTPクライアントソフトを使って、現状の.htaccess ファイルをダウンロードします。
htaccessファイルダウンロード
ファイルが保存されているフォルダを開き、ダウンロードした.htaccess ファイルを見つけてください。
右クリックでコピー&貼り付けして複製を作り、ファイルの名前と拡張子を変更します。

『 .(ドット) 』 から始まる名前のままだと、編集・保存ができないことがあります。
その際はドットは削除して、テキスト用の拡張子『.txt』を最後に付けてください。
これがいざという時のバックアップなので、間違えて編集・削除しないようご注意ください。
htaccessファイルコピー
次に元のファイルの名前を変更します。
これも『 .(ドット) 』 から始まる名前のままだと、編集・保存ができないので、
一時的に名前を変更して、テキスト用の拡張子『.txt』を付けてください。
htaccessファイルの名称変更
テキストファイルとして保存されたら、ダブルクリックで開くか、テキストエディタを選択して開きます。
テンプレートでくっついている.htaccess ファイルはほぼデフォルトの状態で何も記載されていないと思います。
既に何かが記載されている場合は、何が書かれているのかこの機会に調べてみてもいいですね。

.htaccess ファイルに記述する内容

メモ帳などのテキストエディタで拒否内容を記述して保存しましょう。

例としてIPアドレスとドメインを4件拒否してみます。
『deny from 』の後に拒否したい相手のドメインやIPアドレスを入れます。

IPアドレスとドメインの拒否
Order allow,deny
allow from all
deny from 122.20.253.●●●
deny from .linode.com
deny from .roadmap.co.jp
deny from .securitynavi.jp
解説

説明コメントを入れるとこんな感じ。

解説
<!– 以下は最初に許可(allow)、次に拒否(deny)について書いている。 –>
Order allow,deny
<!– 基本的に全てのアクセスを許可(allow)する。いらっしゃいませ。 –>
allow from all
<!– ただし以下の者達は拒否(deny)。うちのサイトへの訪問を許可しないのでサーバーで弾いてね。 –>
deny from 122.20.253.●●●(IPアドレス)
deny from .linode.com(ドメイン)
deny from .roadmap.co.jp(ドメイン)
deny from .securitynavi.jp(ドメイン)

実際には英数字のみ記述してください。
余計な記号や文字を入れるとエラーが起きますのでご注意。
また、半角スペース(空白)や半角ピリオド(.)の部分を全角にしないようにご注意ください。

※ドメイン拒否の場合、そのサイトを経由したアクセスの拒否になります。
相手のアクセスを確実にブロックしたい場合は、自サイトのアクセスログなどを確認して相手のIPアドレスを探してみて下さい。

.htaccess ファイルを保存してアップロード

記述できたら、ファイル保存してから、FFFTPソフトなどでサーバーにアップロードします。
.htaccess ファイルは、拡張子を付けているとサーバー上で正常に動作しません。
そのため、テキストファイルを作成した時に付いている 『 .txt 』 などの拡張子を削除する必要があります。

保存とアップロードの手順

『 .(ドット) 』 から始まるファイル名は保存できないことがあるため、ひとまずドット無しで 1.htaccess.txt などの適当な名前に変更しておきます。
   ↓
FTPソフトでファイルをアップロード
   ↓
サーバー側で 『 .htaccess 』 に名前を変更する
htaccessファイルをサーバー側で名前変更
古いファイルと、新しいファイル、両方が『 .htaccess 』 という名前になった場合、新しい方が自動的に優先され、古いファイルに上書きされます。

こうして .htaccessファイルがサーバー上にアップロードされると、そこに記述した指定が反映されるようになります。
もしも上手く動作せずサイトにエラーが出るようなら、一旦ファイルを削除して、もう一度ファイルを作り直してください。

お好みのエラーページを表示する方法

.htaccessファイルの設定が完了すると、拒否リストのドメイン(もしくはIPアドレス)からアクセスしても403 Forbidden(閲覧禁止・アクセス拒否)ページが表示されるようになります。
403エラーページ
通常の403エラーページは 『 Forbidden 』 や 『 403 Forbidden 』 と書かれた文字だけのページです。
自分で403エラーページを作成して、.htaccessファイルで 『 403エラーの時はこのページを 』 と設定しておけばお好みのページを表示させることもできます。

403エラー『Forbidden』のページを指定

専用のエラーページを作り、サーバーにアップロードします。
ページのURLが『 https://www.ドメイン.co.jp/forbiddenerror.html 』の場合は
以下のように.htaccessファイルに記述してください。

ErrorDocument 403 /forbiddenerror.html
404エラー『FILE NOT FOUND』のページを指定

同じように『そのページは見つかりません』という時に出て来る404エラーの際の表示ページを指定することもできます。
ページを作り、サーバーにアップロードしてからURLが『 https://www.ドメイン.co.jp/filenotfounderror.html 』の場合は以下のように.htaccessファイルに記述してください。

ErrorDocument 404 /filenotfounderror.html
(追記)サイトをHTTPS化した場合

2018年頃からサイトのセキュリティ強化のためのSSL化に伴い、旧式のHTTPからHTTPSへサイトを移行した方も多いかと思います。
その際に旧URLから新URLへリダイレクトするための記述も.htaccessファイルに追加することになりますので、詳しくは【サイトをHTTPS化③】.htaccessファイルでHTTPからHTTPSにリダイレクトをご覧ください。

今回アクセス拒否した相手

今回アクセス拒否したドメインは以下の3件。

linode.com

このブログの管理画面に不正アクセスしようとしていたドメインを拒否。
linode.com
リノードとは、アメリカにあるレンタルサーバー企業なのですが、管理がゆるっゆるなせいで、スパムメールの送信元や、不正アクセスの侵入元として犯罪の温床になっているサーバーです。中には普通にレンタルしているだけの善良な方も居るのでしょうが、日本人で借りているひとはかなり少ないと思いますし、選り分けるのも大変すぎるので一斉に拒否しておきます。

roadmap.co.jp、securitynavi.jp

こちらは株式会社ロードマップと、同社が運営しているセキュリティナビというサイトのドメインです。
うちのブログの画像をブログに盗用していました。
今は画像にも著作権表記を入れるようになったので盗用は減ったのですが、どうやら著作権表記を入れる前に画像を持っていかれていたようです。
株式会社ロードマップ・セキュリティナビによる画像パクリ

タイトルとURLをコピーしました