WordPressを保護する: プラグインフォルダの名前を変更する
English version: Get WordPress protected: rename the plugins folder
プラグイン フォルダーに新しい名前を付けることは、WordPress の保護を強化する最も過小評価されている方法の 1 つです。しかも、無料で簡単です。
なぜそれが重要なのか、そしてどのように機能するのか
Cerber Labの調査によると、ほとんどのハッカー攻撃やプラグインの脆弱性を悪用する試みは、すべての WordPress プラグインがすべてのプラグインのデフォルト フォルダ ( /wp-content/plugins/)にあることを前提としています。幸いなことに、このフォルダの名前は、文字通り 2 つの簡単な手順で簡単に変更できます。これは、サイバー犯罪者がフォルダ名を変更してデフォルトのプラグインの場所を盲目的に攻撃できることをまったく知らないことを意味するのでしょうか。いいえ、常にそうとは限りませんが、 WordPress で動作する Web サイトの大部分はデフォルトのフォルダ構造を使用しているため、サイバー犯罪者はこの弱点を簡単に悪用します。
当社の分析によると、ほとんどのウェブサイトは古いプラグインの脆弱性を悪用してハッキングされており、ほとんどの場合、攻撃者はデフォルトの WordPress プラグイン フォルダにある PHP ファイルの脆弱性を利用しています。
ヒント:インストールされているプラグインの脆弱性を見つけるには、Cerber マルウェア スキャナーを使用します。
WordPressプラグインフォルダの名前を変更する方法
まず、ホスティング コントロール パネル (通常はファイル マネージャー付き) を介して Web サイト上のファイルにアクセスできる必要があります。または、FTP クライアントを使用することもできます。
最初のステップは、既存の WordPress プラグイン フォルダの名前を任意の名前に変更することです。ここでは、モジュール名を使用すると仮定します。プラグイン フォルダの名前には ASCII 文字のみを含める必要があることに注意してください。単に「ラテン アルファベット文字のみを使用する」と入力します。
2 番目のステップは、 wp-config.phpファイルに 2 つの定義ディレクティブを追加することです。これにより、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 ファイルを編集したりしないでください。
一部の機能が動作しなくなりました。Webサイトに、設計が不十分なプラグインや古いプラグインがインストールされています。最善の策は、そのプラグインを削除することです。プラグイン開発が不十分であることに言い訳はありません。プラグイン開発者は、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.