HTML
 Computer >> コンピューター >  >> プログラミング >> HTML

.htaccessでWordPressのファイルとディレクトリを守る方法【アクセス制限の完全ガイド】

.htaccessは、Apacheをはじめとする多くのWebサーバーが対応しているサーバー設定ファイルです。一見地味な存在ですが、実は非常に多くの機能が詰め込まれており、正しく活用すればWebサーバーがリクエストを処理する挙動を細かくコントロールできます。この記事では、.htaccessファイルを使ってWordPressのファイルやディレクトリへのアクセスを制限する方法を解説します。

サーバーの動作を定義できるだけでなく、.htaccessはハッカーによる不正アクセスからWordPressのファイルを守るためにも非常に有効です。本記事では、.htaccessを活用してWordPressのファイルやディレクトリを保護するさまざまな手法を紹介します。

1. .htaccessでWordPressのファイルとディレクトリを保護するには?

ここからは、WordPressのファイルを第三者の目から守るために実践できるシンプルなテクニックを順番に見ていきましょう。

他のファイルを保護する前に、まずは.htaccessファイル自体を保護することから始めます。ただし、いつもお伝えしているように、変更を加える前(どれほど小さな変更であっても)には必ずサイトのバックアップを取り、今回は特に.htaccessファイルのコピーをローカル環境に複数保存しておいてください。誤ってファイルを編集してしまった場合の被害を最小限に抑えるためです。

i. .htaccessファイル自体を保護する

.htaccessファイルは、Webルートフォルダであるpublic_htmlの中にあります。このファイルへアクセスする方法は2つあります。FileZillaなどのFTPクライアントを使うか、WordPressホスティングアカウントのファイルマネージャーを使うかです。ここでは、ファイルマネージャーを使ってファイルにアクセスし、保護する手順を紹介します。

ステップ1: ユーザー名とパスワードを使ってホスティングアカウントにログインします。認証情報が不明な場合は、ホスティング会社のガイドを参照してください。

.htaccessでWordPressのファイルとディレクトリを守る方法【アクセス制限の完全ガイド】
Bluehostアカウントにログイン

ステップ2: File Manager(ファイルマネージャー)をクリックします。

.htaccessでWordPressのファイルとディレクトリを守る方法【アクセス制限の完全ガイド】
「File Manager」を選択

ステップ3: 次に、public_htmlフォルダをクリックします。

.htaccessでWordPressのファイルとディレクトリを守る方法【アクセス制限の完全ガイド】
「public_html」を選択

ステップ4: フォルダ内に.htaccessファイルが表示されるので、右クリックして編集(edit)を選択します。

ファイルを開いたら、以下のコードを追記してください。

# Deny access to .htaccess
<Files .htaccess>
Order allow,deny
Deny from all
</Files>

これで、ユーザーがあなたの.htaccessファイルにアクセスできなくなります。簡単ですね。

これで.htaccessファイル自体は安全になりました。次は、wp-adminフォルダの保護に進みましょう。

ii. .htaccessでwp-adminフォルダへのアクセスを制限する

wp-adminフォルダには、管理ツールを動かすためのファイル群が格納されています。このフォルダ内のadmin.phpファイルは、次のような重要な役割を担っています。

  • データベースへの接続を可能にする
  • WordPressダッシュボードを表示する
  • サイトのログインページを制御する

お分かりのとおり、wp-adminディレクトリは極めて重要なフォルダであり、不正アクセスからしっかり守る必要があります。管理パネルにアクセスされると、ハッカーはサイトに深刻な被害をもたらすことができるからです。そこで、.htaccessファイルを使ってWordPress管理フォルダへのユーザーアクセスを制限しましょう。具体的には、許可した特定のIPアドレスのみアクセスを許可します。そのためには、専用のコード(下記)を記述した別の.htaccessファイルを作成し、wp-adminフォルダにアップロードします。

新しい.htaccessファイルを作成するには、テキストエディタで新規ファイルを開き、.htaccessという名前で保存します。「.htaccess.txt」や「.htaccess.doc」など、余計な拡張子を付けないよう注意してください。あくまで拡張子なしの.htaccessです。作成したら、以下のコードを貼り付けます。

# Limit logins and admin by IP
<Limit GET POST PUT>
order deny,allow
deny from all
allow from 12.34.56.78
</Limit>

作成した.htaccessファイルをwp-adminフォルダにアップロードするには、ホスティングアカウントにログインして、下記のようにファイルマネージャーを開きます。

.htaccessでWordPressのファイルとディレクトリを守る方法【アクセス制限の完全ガイド】
「File Manager」を選択

ファイルマネージャーをクリックすると、サイト内のすべてのファイルとフォルダが表示されます。続けてpublic_htmlフォルダをクリックしてください。

.htaccessでWordPressのファイルとディレクトリを守る方法【アクセス制限の完全ガイド】
「public_html」を選択

wp-adminフォルダをクリックします。

.htaccessでWordPressのファイルとディレクトリを守る方法【アクセス制限の完全ガイド】
「wp-admin」を選択

次に、アップロードボタンをクリックします。

.htaccessでWordPressのファイルとディレクトリを守る方法【アクセス制限の完全ガイド】
「Upload」を選択

ローカル環境で作成したばかりの.htaccessファイルを選択し、開いたウィンドウからアップロードします。

.htaccessでWordPressのファイルとディレクトリを守る方法【アクセス制限の完全ガイド】
ファイルをアップロード

新しい.htaccessファイルのアップロードが完了したら作業終了です。以降、明示的に許可したユーザー以外は、管理パネルにアクセスできなくなります。

なお、この設定はwp-adminへのアクセスのみを制限するものであり、WordPressサイト全体へのアクセスを遮断するものではありません。登録済みユーザーは引き続きwp-adminにアクセスできますが、これはユーザー権限(ロール)によっても制御可能です。すべての登録ユーザーがフォルダにアクセスできないよう、権限を絞ることができます。

iii. wp-config.phpへの不正アクセスをブロックする

wp-configファイルはWordPressの基本設定を司るファイルで、MySQL設定、シークレットキー、データベース接続情報など、WordPressインストールに関する機密性の高い情報を含んでいます。これほど重要なデータを扱う以上、外部の目から徹底的に守らなければなりません。

.htaccessファイルを使えば、この重要なファイルへのWebユーザーからのアクセスを防ぐことができます。必要なのは、以下のコードを.htaccessファイルに追加するだけです。

.htaccessファイル自体を保護する」の手順と同様に、ファイルマネージャーから.htaccessファイルを開き、以下のコードを追加してください。

<files wp-config.php>
order allow,deny
deny from all
</files>

上記のコードを追加すれば、wp-config.phpへの不正アクセスをブロックできます。

iv. wp-content/uploadsへのアクセス制限とPHP実行の無効化

ハッカーは、ハッキングが発見されて対処された後でも将来再びサイトに侵入できるよう、バックドアを仕込んでいくことがよくあります。こうしたバックドアファイルは、wp-includesやwp-content/uploads/ディレクトリ内でWordPressのファイルに擬態していることが多く、その多くは.phpファイルです。WordPressのファイルやフォルダをより強固に守るためには、この種のファイルの実行を無効化する必要があります。つまり、これらのディレクトリでPHPの実行を無効にすることで、アクセス制限を実現できます。

.htaccessによるPHP実行の無効化は、以下の手順に従えばとても簡単です。

まず、テキストエディタで新しい.htaccessファイルを作成し、以下のコードを追加します。

<Files *.php>
deny from all
</Files>

次に、ホスティングアカウントにログインしてファイルマネージャーを開きます。ここからコンテンツとアップロードフォルダにアクセスできるので、wp-content/upload/フォルダを探してください。

.htaccessでWordPressのファイルとディレクトリを守る方法【アクセス制限の完全ガイド】
「wp-content」から「uploads」を選択

Uploadボタンをクリックし、新しく作成した.htaccessファイルをアップロードします。

.htaccessでWordPressのファイルとディレクトリを守る方法【アクセス制限の完全ガイド】
「Upload」を選択

Uploadボタンをクリックすると新しいウィンドウが開くので、ローカル環境から.htaccessファイルを選択します。

.htaccessでWordPressのファイルとディレクトリを守る方法【アクセス制限の完全ガイド】
ファイルをアップロード

wp-content/upload/フォルダへの.htaccessファイルのアップロードが完了したら、今度はwp-includesフォルダにも同じファイルを追加します。

wp-content/upload/フォルダの場合と同様に、ファイルマネージャーを開き、サイトのホームディレクトリからwp-includesフォルダにアクセスしてください。

.htaccessでWordPressのファイルとディレクトリを守る方法【アクセス制限の完全ガイド】
「wp-includes」を選択

wp-includesフォルダをクリックし、続けてアップロードボタンを押します。

.htaccessでWordPressのファイルとディレクトリを守る方法【アクセス制限の完全ガイド】
「Upload」を選択

アップロードボタンをクリックすると、ローカル環境からファイルを選択できるようになります。先ほど作成した.htaccessファイルを選択してアップロードしましょう。

.htaccessでWordPressのファイルとディレクトリを守る方法【アクセス制限の完全ガイド】
ファイルをアップロード

この2つの重要なフォルダ両方に.htaccessを設置すれば、これらのフォルダ内でのPHP実行は完全に無効化されました。

v. htaccessでWordPressのディレクトリリスティングを無効化する

ディレクトリリスティング(ディレクトリブラウジング)とは、Webページの代わりにファイルやフォルダの一覧が表示されてしまう機能のことです。たとえば、あなたのサイト(www.example.com)にprivateというディレクトリがあるとします。このディレクトリでディレクトリリスティングが無効化されていない場合、誰かがwww.example.com/private/と入力すると、privateディレクトリ配下のすべてのファイルとフォルダが見えてしまいます。

これはサイトにとって大惨事になりかねません。悪意あるハッカーにサイトのファイル構造に関する膨大な情報を与えることになり、その知識を武器に攻撃を計画されてしまう恐れがあります。htaccessでWordPressのディレクトリリスティングを無効化すれば、サイトへのアクセスレベルを制限できます。

特定のディレクトリでディレクトリリスティングを無効化するには、テキストエディタで.htaccessファイルを作成し(.htaccessという名前で、余計な拡張子は付けない)、以下のコードを追加してWordPressファイルへのアクセスを制限します。

# disable directory browsing
Options All -Indexes

コードを追加したら、この新規.htaccessファイルを、対象機能を無効化したいディレクトリにアップロードします。たとえばwp-includesフォルダでディレクトリリスティングを無効化したい場合は、前述の手順と同じくファイルマネージャー経由で、この.htaccessファイルをwp-includesフォルダにアップロードしてください。

vi. 特定のIPアドレスからのサイトアクセスをブロックする

特定のIPアドレスのユーザーが繰り返しスパム行為を行ったり、ハッキングを試みたり、不正にアクセスしようとしていることに気づいたことはありませんか?.htaccessファイルを使えば、そのIPアドレスからのアクセスを完全に遮断し、WordPressへの不正アクセスを防ぐことができます。そのためには、以下のコードを.htaccessファイルにコピーしてください。

<Limit GET POST>
order allow,deny
deny from 123.456.78.9
allow from all
</Limit>

上記コード内のIPアドレスはあくまでダミーです。ブロックしたい実際のIPアドレスに置き換えてください。1つではなく複数のIPアドレスをブロックしたい場合は、次のような行を1行ずつ追加していきます。

deny from 213.546.87.9

また、単一のIPアドレスではなくIPアドレスの範囲全体を拒否したい場合は、最後のオクテットを省略するだけです。

deny from 213.546.87

これにより、213.546.87.0から213.546.87.255までのすべてのIPアドレスがブロックされます。

もし誤ってサイト管理者やチームメンバーのIPアドレスをブロックしてしまった場合は、IPアドレスをホワイトリストに登録する方法に関するガイドを参照してください。

vii. 特定のドメインからのサイトアクセスをブロックする

スパムを行っている相手の具体的なIPアドレスを特定できないこともあるでしょう。しかし、攻撃が特定の悪質なドメインに投稿されたリンク経由で行われていることは把握できるかもしれません。.htaccessを使えば、そうした有害サイトからのリンク経由でアクセスしてくる訪問者をブロックできます。

ドメイン名をブロックするには、以下のコードを.htaccessファイルに追加します。

SetEnvIfNoCase Referer "badsite.com" bad_referer
Order Allow,Deny
Allow from ALL
Deny from env=bad_referer

上記コードの「badsite.com」の部分を、ブロックしたいドメインに置き換えてください。こうすることで、ブロック対象のドメインからあなたのサイトへアクセスしようとしたユーザーは、エラーメッセージを受け取り、サイトにアクセスできなくなります。

2. 代替ソリューション

ここまで紹介した方法はいずれもWordPressのファイルやディレクトリへのアクセス制限に効果的ですが、一方でサイトに大きなリスクをもたらすことも否定できません。なぜなら、極めて重要な設定ファイルを直接編集することになるからです。ほんの1つのドット(ピリオド)の打ち間違いでも、サイトの機能が壊れてしまう可能性があります。怖い話ですよね。

そのため、専門家でないのであれば、セキュリティプラグインを導入してサイトを強化するのが賢明です。MalCareというWordPressプラグインを使えば、サイトのセキュリティ対策を一任できます。特定のIPアドレスのブラックリスト登録、サイト強化(ハードニング)対策の実施、ログインページの保護、マルウェアスキャンなど、重要なセキュリティ対策をこれひとつで網羅的にカバーしてくれます。

包括的なウェブサイトセキュリティソリューションをお求めなら、

MalCareを無料でお試しください!

  1. Windows 11でファイルをバックアップしてWindows 10にダウングレードする完全ガイド

    Windows 11は10月5日に正式リリースされました。リリース後はWindows Updateを通じてWindows 11が提供され、ユーザーは任意のタイミングで新しいOSへアップグレードできるようになります。しかし、アップグレードしてみたものの使いづらいと感じたらどうすればよいのでしょうか?あるいは、以前Windows InsiderプログラムでWindows 11をテストしていて、Windows 10へロールバックしたいという方もいるでしょう。実は、Windows 11をインストールしてから10日以内であれば、ロールバック機能を使ってWindows 10に戻すことができ、データもすべて

  2. Windowsエクスプローラーでファイルやフォルダーを効率よく整理・管理する方法

    ファイルエクスプローラー(Windowsエクスプローラーとも呼ばれます)は、WindowsのGUI(グラフィカルユーザーインターフェース)であり、データやファイル、フォルダーへのアクセス、編集、管理をひとつの場所からまとめて行える便利なツールです。 興味深いことに、多くのユーザーは公式に調べたことがなくても、何となくその存在や使い方を知っています。しかし、その機能を最大限に活用できている人は意外と少ないのが実情です。この記事では、エクスプローラーをより快適に使うための設定やテクニックを紹介します。それでは始めましょう。 1. 既定のホーム画面を変更する ファイルエクスプローラーを起動すると、既