WordPressはオープンソースで誰でも開発に参加出来ます。
また、さすがにコア部分の開発には関われないよ…という方でも、機能を拡張するプラグインの開発は比較的誰でも参入しやすかったりします。
結果、沢山のプラグインに恵まれているWordPressですが、やはりそんななかでもインストールしないほうが安全なプラグインもいくつかあります。
どれが安全でどれが危険という明確な基準はありませんが、初心者などが安易にインストールしないほうが安全かもしれないというプラグインを見極める方法を紹介します。
※これらはあくまで目安であり、自分の考えです。全てにおいてこれが通用するわけではありませんし、「避けたほうがいい基準」に当てはまっても非常に有用なものもあったりします(その逆だってあるかもしれません)。ですので、最終的な判断はインストールする各人にお任せします。
インストールを避けるべき、または慎重に判断すべきもの
様々なプラグインがありますが、そのなかでも個人的にこれは「インストールしないほうがいいんじゃない?」と思ったものや、「インストールするかどうかは慎重に判断したほうがいいんじゃないか?」と思ったものに共通する特徴として、以下のようなものがあります。
- 投稿画面でPHPが実行できるようになるもの全て
- 公式プラグインディレクトリに登録されていないもの
- 長い間更新されていないプラグイン
- コアファイルの書き換えを必要とするものや勝手に書き換えるもの
まぁ、当たり前な感じのものが多いですよね。とりあえず順番に説明してみます。
1.投稿画面でPHPが実行できるようになるもの全て
Exec-PHPやrunPHPなどですね。これらは投稿やテキストウィジェットの中でPHPを実行できるようにしてくれます。テーマだけでなく、投稿内でも動的なページが作れるため、CMS的な使い方をしている場合やプログラマなんかには嬉しい機能のようにも見えます。
ですが、便利さ以上にセキュリティなど諸々のリスクが高く、そこまでして投稿でPHPを実行するようにするだけのメリットをあまり感じられません。
また、今回例に挙げた2つのプラグインはどちらともこの後お話する「3.長い期間更新されていないプラグイン」にも当てはまります。
2重に危険だということですね。
WordPressとPHP双方に詳しい人がリスクを理解した上で自分のサイトだけで使うならまだしも、クライアントワークなどで使うのは避けたほうがいいでしょう。
実は今の会社で引き継いだ案件のなかに、このプラグインを使って固定ページのなかに直接ループを書くという恐ろしいテーマがありました。確かにコンテンツごとにレイアウトや読みこむ関連投稿の内容が変わるちょっと複雑な構造を持ったサイトなのですが、これって、固定ページにスラッグを指定して、「page-(slug).php」をそのぶん作っても実現出来ますし、page.php の中で条件分岐してもよかったでしょう。確かに空っぽの固定ページが沢山あるのは気持ち悪いかもしれませんが、それでもこの方法をとるよりずっと安全だと思います。
たまに「投稿でPHPが実行できるので非常に便利だから中級者以上は必須」なんて紹介されていたりするようですがショートコードを使うようにしたり、テンプレート側に書いたほうが「WordPress的には中級者」といえるんじゃないかなと思います。 ((もちろんその中で実行させるPHPコード如何では危険なものにもなりかねませんが……)) さらにそれを自分用のプラグインとして切り分けられるようになってくれば、脱中級者も近いかもしれません。 ((中級者とか上級者の基準はとくに考えずに書いています。))
2.公式プラグインディレクトリに登録されていないもの
別に公式プラグインディレクトリに登録されていない=危険なプラグインと言うつもりはありません。
ただ単に公式ディレクトリに公開する方法を知らないだけの可能性もありますし、Githubなどで開発してそのままそこで公開している場合なんかもありますし、単に面倒なだけなのかもわかりません(←
ですが、公式でホスティングされていない場合、おそらく更新通知なども来ませんので、手動でバージョンをチェックし、アップデートを行なっていくことになります。
重ねて言いますが、公式プラグインディレクトリに登録されていない=危険ではありません。公式プラグインディレクトリで配布されていないものでも非常に有用なものもあります。ですが、慣れないうちは避けたほうがいいかもしれません。
しかし、最低でも作者と連絡が取れない野良プラグインは止めておいたほうが無難です。
3.長い間更新されていないプラグイン
公式ディレクトリにアップされている長期間更新されていないプラグインは、プラグインのページにこのようなメッセージが表示されています。
この例だと、もう2年以上更新がないということですね。
WordPressは日々アップデートが行われており、それによって非推奨となったり、廃止されているコードなどもあります。
つまり、更新がされていないプラグインは、その当時は問題なくても、アップデートされた新しい本体では動作しない、あるいは本来とは異なる動作をする可能性もあります。
また、公開後に発見されたセキュリティ上の問題などを含んでいる可能性もあります。
つまり、最新版の安全で便利な本体を使っていても、プラグインのせいでセキュリティ的に問題が発生してしまう可能性もあります。
まずは同様の動作をするプラグインで更新が続けられているものがあるかを探してみてどうしてもこのプラグインじゃないとダメで、どうしてもインストールしないといけない場合は、ローカルでしっかり検証するなど、慎重に検討したほうがいいでしょう。
4.コアファイルの書き換えを必要とするものや勝手に書き換えるもの
WordPressはそれ単体では安全に動作するように作られていますが、その中心部(コア)に手を加えてしまう場合はそうとは言い切れなくなります。アップデートによって使えなくなった機能やタグには、セキュリティ上の理由などから使えなくなったものもあるかもしれません。
もしそれら廃止されたコードを使っていたために動かなくなった「3.長い期間更新されていないプラグイン」をコアを改造することで動くようにするような類のハックをしてしまうと折角塞いだセキュリティホールを開いてしまう可能性や、思わぬ場所で想定外の動作をする危険性もあります。
そしてなにより、コアファイルは本体のアップデートにより上書きされますので、動作するように修正していた場合、それらが修正前の状態に戻ってしまうため、プラグインが動作しなくなります。
その度に修正してまで、そのプラグイン、果たして使い続ける必要があるんでしょうか…?
コメントする