WordPressを保護する:プラグインフォルダの名前を変更する
English version: Get WordPress protected: rename the plugins folder
プラグインフォルダに新しい名前を付けることは、WordPressのセキュリティを強化する上で最も見過ごされがちな方法の一つです。しかも、無料で簡単にできます。
なぜそれが重要なのか、そしてどのように機能するのか
Cerber Labの調査によると、ハッカーによる攻撃やプラグインの脆弱性を悪用する試みの多くは、WordPress プラグインがすべてのプラグインのデフォルトフォルダである/wp-content/plugins/に配置されていることを前提としています。幸いなことに、このフォルダ名は文字通りたった2つの手順で簡単に変更できます。これは、サイバー犯罪者がフォルダ名を変更してデフォルトのプラグイン配置場所を盲目的に攻撃する方法について全く知らないことを意味するのでしょうか?必ずしもそうとは限らないものの、 WordPress で動作するウェブサイトの大多数はデフォルトのフォルダ構造を使用しているため、サイバー犯罪者はこの脆弱性を簡単に悪用できるのです。
当社の分析によると、ほとんどのウェブサイトは古いプラグインの脆弱性を悪用してハッキングされており、ほとんどの場合、攻撃者はデフォルトの WordPress プラグイン フォルダにある PHP ファイルの脆弱性を利用しています。
ヒント:インストールされているプラグインの脆弱性を見つけるには、Cerber マルウェア スキャナーを使用します。
WordPressのプラグインフォルダの名前を変更する方法
まず、ホスティングコントロールパネル(通常はファイルマネージャー機能付き)からウェブサイト上のファイルにアクセスする必要があります。FTPクライアントを使用することもできます。
最初のステップは、既存のWordPressプラグインフォルダの名前を任意の名前に変更することです。ここではモジュール名を使用します。プラグインフォルダの名前にはASCII文字のみを含める必要があることに注意してください。「ラテンアルファベットのみ使用」と入力してください。
2つ目のステップは、 wp-config.phpファイルに2つのdefineディレクティブを追加することです。これにより、WordPressはプラグインフォルダの新しい名前を認識して使用できるようになります。このステップでは、WordPress管理ダッシュボードに組み込まれているファイルエディタは使用できません。ホスティングコントロールパネル内のファイルエディタ、またはFTPクライアントを使用して、wp-config.phpファイルを編集してください。以下の例を参考に、以下の点に注意してください。
- <?phpの次の行のファイルの先頭にディレクティブを追加する必要があります。
- WP_PLUGIN_DIR には、プラグインディレクトリへのフルパスを指定してください。ヒント:標準プラグインフォルダへのフルパスは、管理画面の「ツール」→「診断」タブで確認できます。「ファイルシステム」セクションの「WordPress プラグインフォルダ」行に表示されます。
- 末尾にスラッシュはありません。
<?php
定義('WP_PLUGIN_DIR'、'/full/path/to/wp-content/modules');
'WP_PLUGIN_URL'、'https://example.com/wp-content/modules'を定義します。
WP_PLUGIN_DIR定数は、名前を変更したプラグイン フォルダーへの末尾のスラッシュなしの完全なパスを定義します。
WP_PLUGIN_URL定数は、名前を変更したプラグイン フォルダーの末尾のスラッシュなしの URL を定義します。
これら2つの手順を完了すると、WordPressにセキュリティレイヤーが追加されます。検討すべきもう1つのセキュリティ対策は、スケジュールされたマルウェアスキャンを有効にすることです。
起こりうる問題とトラブルシューティング
ウェブサイトが読み込まれず、エラーが表示されています。これは通常、フォルダ名にタイプミスがあることを意味します。wp-config.php に追加した定義、フルパス、指定した URL をよく確認してください。ウェブサイトのパスと URL を指定する必要があります。上記の例からコピーしたり、プラグインフォルダの名前を変更したり、WordPress ダッシュボードから wp-config.php ファイルを編集したりしないでください。
一部の機能が動作しなくなりました。ウェブサイトに、設計が不十分なプラグインや古いプラグインがインストールされています。最善の策は、そのプラグインを削除することです。プラグイン開発の質の低さには言い訳の余地はありません。プラグイン開発者はWordPressのコーディング規約を遵守する必要があります。
プラグインフォルダのデフォルト名を復元する方法
- wp-config.php ファイルからWP_PLUGIN_DIRおよびWP_PLUGIN_URLディレクティブを含むすべての行を削除します。
- WordPressプラグインが存在するフォルダのデフォルト名はpluginsなので、プラグインフォルダの名前をpluginsに戻します。
I tried changing the directory but it didn’t work.
Looking for more information I found something that works.
define( ‘WP_PLUGIN_DIR’, dirname(__FILE__) . /content/mod’);
define( ‘WP_PLUGIN_URL’, ‘http://example.com/content/mod’);
Why this way if it works and not the way you have in the post?
Has anything changed in the latest versions of WordPress?
The same thing happens to me with WP-CONTENT
Thanks
Yes, you can use this way too but it leaves some room for uncertainty because a constant should be constant. The perfect way is to define a static value like a string. It didn’t work for you most likely because the path you specified for WP_PLUGIN_DIR was not correct. Possibly because you had changed the default wp-content path to content. In this case, the full config should be:
// no trailing slashes
define('WP_CONTENT_DIR', dirname(__FILE__) .'/content');
define('WP_CONTENT_URL', 'https://example.com/content');
define('WP_PLUGIN_DIR', WP_CONTENT_DIR . '/mod');
define('WP_PLUGIN_URL', WP_CONTENT_URL . '/mod');
Thanks!
I started by following this other post https://wpcerber.com/turn-wordpress-into-fort-knox/
But I couldn’t get it to work well.
Yes, that approach requires some technical background.