Xserverが今なら最大50%OFF! 2022年11月25日(金)12:00まで

【コピペOK】プラグイン無し .htaccessだけで行うWordPressセキュリティ対策

この記事は約6分で読めます。
本文は約3451文字です

WordPressの不正アクセスや改ざんが発生するケースの原因は、実はIDとパスワードが簡単なことがほとんどです。

不正ログインされた後は、プラグインをアップロードされてバックドアを仕掛けられて、あとは外部から自由にアクセスされてしまいます。

不正ログインされるということは、.htaccessやパーミッションと言った一般的な対策は全く意味が無くなります。よく知られた対策は全て無効化されてしまうためです。

不正ログインされないようにログインURLを変更することで、IDとパスワードに加えてログインURLを知らないとログインできなくなるので、不正ログインするのはほぼ無理になります。

不正ログイン対策を行ったうえで、サイトの改ざんが止まらない場合の対策としては、.htaccessへの追記が有効だと考えます。

この記事では、.htaccssのセキュリティ対策についてまとめています。

この記事の内容

WordPress プラグイン無し .htaccessだけで行うセキュリティ対策

この対策が意味があるのは次のような対策が行われていて、かつ、サイトの改ざんが止まらない場合です

対策をしているのにサイトの改ざんが止まらない

  • ログインURLを変更して不正ログインを防いでいる
  • wordfenceのハードスキャンでサイトがクリーンである
  • サーバーのWAFが有効である
  • ファイアウォールプラグインが有効になっている

①:wp-content/uploadsフォルダでのPHPプログラムの実行を禁止する

このコードの目的は、WordPress サイトの wp-content/uploads/ ディレクトリ内にある PHP ファイルへのアクセスを拒否することです。

これにより、悪意のあるユーザーがアップロードされた画像ファイルなどを悪用してサイトに不正なスクリプトを実行することを防ぐことができます。

これは、WordPress サイトのセキュリティを強化するための一般的な対策の一つです。

コード

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^.*wp-content/uploads/.*\.php.*$ - [F,L]
</IfModule>

コードの解説

1. <IfModule mod_rewrite.c>

この行は、mod_rewrite モジュールが Apache に読み込まれているかどうかを確認しています。
mod_rewrite は、URL の書き換えやリダイレクトなどを行うためのモジュールです。

2. RewriteEngine On

この行で、mod_rewrite の機能を有効にしています。
これにより、URL の書き換えやリダイレクトが可能になります。

3. RewriteRule ^.*wp-content/uploads/.*\.php.*$ - [F,L]

この行は、特定の条件に一致する URL リクエストに対する処理を定義しています。

^.*wp-content/uploads/.*\.php.*$ は、正規表現で表されたパターンに一致する URL を指定しています。

この正規表現は、wp-content/uploads/ ディレクトリ内にある .php 拡張子を持つファイルへのアクセスを対象としています。

- [F,L] は、この条件に一致した場合の処理を指定しています。
[F] は Forbidden (アクセス拒否) を意味し、[L] はこのルールが最後のルールであることを示しています。

②:wp-includeフォルダのPHPプログラムの直接アクセスを禁止する

このコードの目的は、WordPress サイトの重要なディレクトリやファイルへのアクセスを制限することで、セキュリティを強化することです。

具体的には、wp-admin/includes/wp-includes/wp-includes/js/tinymce/langs/wp-includes/theme-compat/ ディレクトリ内のファイルへのアクセスを拒否することで、悪意のあるユーザーによる不正なアクセスを防ぐことができます。

コード

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^.*wp-admin/includes/ - [F,L]
RewriteRule !^.*wp-includes/ - [S=3]
RewriteRule ^.*wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^.*wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^.*wp-includes/theme-compat/ - [F,L]
</IfModule>

コードの解説

1. <IfModule mod_rewrite.c>

この行は、mod_rewrite モジュールが Apache に読み込まれているかどうかを確認しています。
mod_rewrite は、URL の書き換えやリダイレクトなどを行うためのモジュールです。

2. RewriteEngine On

この行で、mod_rewrite の機能を有効にしています。
これにより、URL の書き換えやリダイレクトが可能になります。

3. RewriteRule ^.*wp-admin/includes/ - [F,L]

この行は、wp-admin/includes/ ディレクトリ内のすべてのファイルへのアクセスを拒否しています。

[F,L] は、Forbidden (アクセス拒否) を意味し、このルールが最後のルールであることを示しています。

4. RewriteRule !^.*wp-includes/ - [S=3]

この行は、wp-includes/ ディレクトリ以外のすべてのファイルへのアクセスを許可しています。

[S=3] は、次の3つのルールをスキップすることを意味しています。

5. RewriteRule ^.*wp-includes/[^/]+\.php$ - [F,L]

この行は、wp-includes/ ディレクトリ内の PHP ファイルへのアクセスを拒否しています。

[^/]+\.php$ は、ディレクトリ名の後に .php 拡張子を持つファイルを指定しています。

6. RewriteRule ^.*wp-includes/js/tinymce/langs/.+\.php - [F,L]

この行は、wp-includes/js/tinymce/langs/ ディレクトリ内の PHP ファイルへのアクセスを拒否しています。

7. RewriteRule ^.*wp-includes/theme-compat/ - [F,L]

この行は、wp-includes/theme-compat/ ディレクトリ内のすべてのファイルへのアクセスを拒否しています。

まとめ

サイトの不正アクセスがあり改ざん被害にあった時、不正ログインされていないのにサイトの改ざんが止まらないケースというのはあります。

未知のセキュリティホールがあるのかもしれません。

そのようなケースでは、.htaccessを書き換えられないケースの方が多いので、.htaccessへの一般的な対策が効果を発揮するはずです。

この情報は役に立ちましたか? はい いいえ
参考なったらシェアお願いします!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

サーバーソムリエのアバター サーバーソムリエ レンタルサーバー鑑定士

国内のあらゆるレンタルサーバーを使用、管理した経験があります。サーバー選びからWordpressを使ったサイト運営まで丸っとお任せください。あなた様のご希望にそった本当に使える最適なサーバーをご紹介します。

コメントを閉じる

コメント

コメントする

コメントは日本語で入力してください。(スパム対策)

CAPTCHA

この記事の内容