WordPress を保護: プラグイン フォルダーの名前を変更する
English version: Get WordPress protected: rename the plugins folder
プラグイン フォルダーに新しい名前を付けることは、WordPress の保護を強化する最も過小評価されている方法の 1 つです。それでいて無料で簡単です。
重要な理由とその仕組み
Cerber Labでの調査によると、ほとんどのハッカー攻撃とプラグインの脆弱性を悪用しようとする試みは、すべての WordPress プラグインがすべてのプラグインのデフォルト フォルダーである/wp-content/plugins/にあると想定しています。幸いなことに、このフォルダの名前は、文字通り 2 つの簡単な手順で、好きな名前に簡単に変更できます。これは、サイバー犯罪者が、フォルダの名前を変更してデフォルトのプラグインの場所をやみくもに攻撃する能力についてまったく知らないということでしょうか?いいえ、常にではありませんが、 WordPress を利用した Web サイトの大多数はデフォルトのフォルダー構造を使用しており、サイバー犯罪者がこの弱点を簡単に悪用するのはそのためです。
当社の分析によると、ほとんどの Web サイトは古いプラグインの脆弱性を悪用してハッキングされており、ほとんどの場合、攻撃者はデフォルトの WordPress プラグイン フォルダーにある PHP ファイルの脆弱性を利用しています。
ヒント:Cerber マルウェア スキャナーを使用して、インストールされているプラグインの脆弱性を見つけます。
WordPressプラグインフォルダーの名前を変更する方法
まず第一に、通常はファイル マネージャーを備えたホスティング コントロール パネルを介して、Web サイト上のファイルにアクセスする必要があります。または、FTP クライアントを使用することもできます。
最初のステップは、既存の WordPress プラグイン フォルダーの名前を任意の名前に変更することです。モジュール名を使用すると仮定しましょう。プラグイン フォルダの名前には、ASCII 文字のみを含める必要があることに注意してください。簡単に言えば、「ラテン アルファベットのみを使用する」ということです。
2 番目のステップは、WordPress がプラグイン フォルダーの新しい名前を認識して使用するのに役立つ 2 つの定義ディレクティブをwp-config.phpファイルに追加することです。このステップでは、WordPress 管理ダッシュボードで組み込みのファイル エディターを使用することはできません。ホスティング コントロール パネル内のファイル エディターまたは FTP クライアントを使用して、wp-config.php ファイルを編集します。以下の例を参照してください。
- <?phpの次の行のファイルの先頭にディレクティブを追加する必要があります。
- WP_PLUGIN_DIR のプラグイン ディレクトリへのフル パスを使用する必要があります。ヒント: ツール / 診断管理ページで、標準プラグイン フォルダーへのフル パスを見つけることができます。 「WordPress プラグイン フォルダー」行のファイルシステム セクションに表示されます。
- 末尾のスラッシュはありません。
<?php
define('WP_PLUGIN_DIR', '/full/path/to/wp-content/modules');
define('WP_PLUGIN_URL', 'https://example.com/wp-content/modules');
WP_PLUGIN_DIR定数は、名前を変更したプラグイン フォルダーへの末尾にスラッシュを付けないフル パスを定義します。
WP_PLUGIN_URL定数は、名前を変更したプラグイン フォルダーの末尾にスラッシュを付けずに URL を定義します。
これらの 2 つの手順を完了したら、WordPress にセキュリティ レイヤーを追加します。考慮すべきもう 1 つのセキュリティ メカニズムは、スケジュールされたマルウェア スキャンを有効にすることです。
考えられる問題とトラブルシューティング
Web サイトが読み込まれず、エラーが表示されます。通常、フォルダ名にタイプミスがあることを意味します。 wp-config.php に追加した定義、フルパス、および指定した URL を慎重に確認してください。 Web サイトのパスと URL を指定する必要があります。上記の例からそれらをコピーしたり、プラグイン フォルダーの名前を変更したり、WordPress ダッシュボード内から wp-config.php ファイルを編集したりしないでください。
一部の機能が動作しなくなりました。 Web サイトに不適切な設計または古いプラグインがインストールされている場合。あなたができる最善のことは、それを取り除くことです。貧弱なプラグイン開発の言い訳はありません。プラグイン開発者は、WordPress コーディング標準に従う必要があります。
plugins フォルダーの名前をデフォルトに戻す方法
- 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.