「WordPressはプラグインが豊富」というのはWordPressの一つの魅力です。一方、プラグインが多くなればなるほど動作が重くなったり、プラグイン同士の衝突があったり、セキュリティリスクが上がったり……と、色々なリスクが出てきます。そのため、できるだけインストールするプラグインの数は少ないに越したことは有りません。
しかし、「プラグインをインストールしたものの、無効化してそのままになっているプラグインがある」というケースも少なくないはずです。無効化したプラグインはWordPressに影響はあるのか?無効化した状態でもパフォーマンスは落ちる?無効化した状態でのセキュリティリスクは?など、疑問が上がります。
そこで今回、50個のプラグインをインストールし、無効化した状態でフロントと管理画面にどのような影響があるかを検証し、セキュリティリスクについても考察しました。
目次
大量プラグインのリストアップはAIに作成してもらう
はじめに、大量プラグインをインストールするにあたって、「どのプラグインをインストールするか?」というプラグインの選定作業があります。基準は「利用者が多いプラグインを選ぶ」としました。ただ一つずつリストを作るのは時間がかかるため、人気のプラグインのリストをChatGPTを使用して作成しました。数に関しては「多い」という定義が人・サイトによって異なるかと思いますが、50個もプラグインを導入することはかなりレアケースと考えられるので、ひとまず50個にしておきました。
人気のあるプラグインを条件としリストアップ
リスト作成にあたり、ChatGPTに以下のように投げかけました。
「WordPress公式プラグインディレクトリに登録されているプラグインで、インストール数が多い順に50個挙げてください。」
すると、WordPress公式プラグインディレクトリに登録されているプラグイン の中から、インストール数が多い順にランキングしてくれました。評価数は今回使わないのですが、せっかくなので残しておきます。
一度に50個は調べられないと回答にあったため、何度かにわけて50個のリストを作成してもらいました。
リストアップできたら表形式に変換し、スラッグを取得するために調整
50個の選定が完成後、扱いやすいように表形式に変換してもらいます。
さらに、後述のプラグインのインストールの際に、プラグインのスラッグ名を利用するため、各プラグインのURLを表に追加します。ちょっと手こずったのが、ChatGPTがよかれと思ってURLをhtmlとして埋め込んでしまうため、何度か微調整してURLを書き出してもらうように調整しました。こうしないと、スラッグが取得できないのです。
表作成も一度に50個のリスト作成ができないため、数回にわけて作成してもらいます。ようやくリストが完成!プラグイン50個のうち2つはなぜかインストール数が20万と30万のプラグインが混ざっていましたが、少数なため修正せずこのまま使います。
スプレッドシートを利用してslug名を取得
次の工程で使うため、スラッグ名を取得します。ChatGPTが作成してくれたリストをスプレッドシートに貼り付け、URLからプラグインのslugを取得しました。関数で横の列に出してもいいし、URL部分が共通なためテキストエディタで不要な部分を削除して貼り付けてもいいでしょう。
ChatGPTに指示をすればスラッグ名を取得できそうですが、リスト作成に数回リクエストしないといけず時間がかかるためスプレッドシートを使いました。スラッグを取得するだけなので、エクセルでもなんでもOKです。
ちなみに今回は微妙にインストール数順になっていなかったため、インストール数の値を変換し、並び替えました。ちょっとだけ変わっていただけですし、プラグインインストールには影響がないためここはスルーで問題有りません。
50個のプラグインを一括でインストールする
ようやくプラグインのインストールです!本来ならば「WordPressの管理画面の新規プラグインインストールから手作業で一つずつインストールしないと……」となるところですが、先程の作業のお陰で一括でインストールできる準備が整いました。各プラグインのスラッグ名がわかることで、WP CLIを使って一括インストールすることが可能です。WP CLIについての簡単な説明は以前書きました。
WP CLI の wp plugin install コマンド
WP CLIの wp plugin install
コマンドを利用し、50個のプラグインを一括でインストールします。
wp plugin install | WP-CLI Command | WordPress Developer Resources
取得した各プラグインのslugをinsall
の後に半角スペースで区切って書いていきます。
例: wp plugin install wpforms-lite classic-editor akismet
これで、50個のプラグインを一回のコマンドで一括インストールできました!なんて楽なんだWP CLI。
ちなみに、今回はプラグインは無効化のままですが、もしインストールと一緒に有効化したい場合は--activate
を追加しましょう。
例: wp plugin install wpforms-lite --activate
フロント側には目立った影響は見つからない
これで無効化した状態で50個のプラグインが入っているWordPressの状態となりました。プラグインを無効化したままでフロントへの影響を確認します。
Chromeのデベロッパーツールを使用してNetworkを確認し、どのようなファイルが読み込まれているのか確認しました。結果として、無効化したプラグイン関連のファイルが読み込まれていることは確認できませんでした。
パフォーマンス比較ツールを使ってプラグイン有り無しの場合を比べてみる
念のためもう一つのチェックとして、Googleによるパフォーマンス改善等のChrome拡張ツールである「Lighthouse」を使って、50の無効化プラグインがある状態と、プラグインが0の場合のトップページのパフォーマンスを比較しました。
まず、無効化プラグインが50個ある場合
続いてプラグイン0(インストールしてあるプラグインが何もない状態)の場合
よって、パフォーマンスへの直接的な影響もないと考えられ、無効化したプラグインを削除したとしても、サイト高速化には繋がらない可能性が高いといえます。
管理画面側は無効化しているプラグインが表示され、データベースにも情報が残っている
一方、WordPressの管理画面では、当然ですがインストールしたプラグインがリストとして表示されます。さらに、無効化していてもデータベースに関連情報が保存されており、これが余計なデータとして蓄積されます。
無効化したプラグインにはセキュリティリスクが残る
これが一番重要なのですが、無効化していたとしても、セキュリティリスクが残っているということです。無効化されたプラグインが残っていることで、セキュリティ上の問題となる主な理由は以下です。
- アクセス可能なファイルがある:プラグインが無効化されている場合でも、そのファイルはサーバー上に存在します。これにより、脆弱性を悪用されるリスクがあります。
- 更新忘れ・無効化だからといって更新をしない:「無効化しているプラグインだから更新しなくてもいいや」と放置されてしまう可能性があります。これにより、脆弱性が修正されている最新バージョンへの更新が遅れ、古いバージョンの脆弱性が攻撃の対象となる可能性があります。
- データベースの脆弱性:一部のプラグインは、データベースに情報を保存します。この情報が適切に保護されていない場合、データベースが攻撃の対象となる可能性があります。
実際に起きた無効化プラグインでもセキュリティ被害に遭った事例
プラグインは無効化されているのに、セキュリティ被害があった具体的な事例を紹介します。2020年に「File Managerプラグイン バージョン6.8以前」に深刻な脆弱性が確認され、ウェブサイトの改ざんなどの被害が報告されました。
WordPress 用プラグイン File Manager の脆弱性について
この脆弱性は、プラグインを無効化していてもセキュリティ被害に遭ってしまうことがわかりました。
無効化していても直接プラグインにアクセスされ被害に遭うといった事例も確認されております。
WordPress「File Managerプラグイン」の脆弱性についての注意喚起 | さくらインターネット
こういったリスクが残るため、不要なプラグインは関連するデータベースのテーブルまで含めて完全に削除することが望ましいと考えられます。無効化して全く使っていないのに、それが原因でセキュリティ被害に遭うとか残念すぎますからね……。
無効化したプラグインはできるかぎり残さず削除する
今回の検証から、WordPressの無効化しているプラグインを削除することは、サイトのパフォーマンス向上や高速化に直接的な影響は少ないということが言える一方で、セキュリティの向上・管理のしやすさ・データベースの整理・リソースの節約・アップデートの手間の回避といった理由から、不要なプラグインは定期的に確認し削除するのが望ましいです。
「削除していいのかわからない、判断がつかない」という場合は、テスト環境を構築し、テスト環境上で削除して問題ないかどうか検証することをお勧めします。
参考: WordPressのテストサイト・検証用環境の作り方
WordPressは簡単にプラグインで機能拡張できますが、そうやっているとすぐにプラグインの数が増えるため、プラグイン追加は十分検討した上で実施したいところです。
コメントを残す