この記事を書く人と信憑性
家富正幸(いえとみまさゆき)
現役のWordPressエンジニア(エンジニア歴16年)
大規模から小規模までのWordPressテーマ開発実績数は800件以上
実際にクライアントが受けてしまった改ざんやハッキング被害の数々を解決してきた実績あり
本記事では、放っておけないPHPのバージョンについてプロの目線から解説していきます。
はじめに
昨今、どんなレンタルサーバーでも「WordPress」対応を謳っており、ユーザーが特に意識せずとも簡単にWordPressをインストール・運用できるようになっています。
しかし、サーバーの環境は運営しているサーバー会社によって「まちまち」であり、サーバーによってPHPやMySQLといったミドルウェアのバージョンは異なります。
今使っているサーバーのPHPのバージョンが、即座に分かる方はどれくらいいるでしょうか?
日頃WordPressのテーマ開発をしていたり、プラグインを開発していたりすれば別ですが、そうではなくブログを書いていたりメディア運営をしているといっただけでは、あまり気にすることがない情報かと思います。
しかしこのPHPのバージョン、しっかり気にしておかないと思わぬセキュリティホールが存在し、ウェブサイトを危険に晒してしまう可能性があります。
そこで今日は、今使っているPHPのバージョンにおける、セキュリティリスクについてお話したいと思います。
古いPHPはセキュリティホールが修正されない
PHPには現在、古くから使われている5系と、比較的新しい8系という2つのバージョンがあります。
今現在のバージョンは・・・
2023年1月現在、5系の最新版はPHP5.6、7系の最新版は7.4.32、8系の最新版は8.2になっていますね。
PHPには明確なサポートポリシーがあり、更新の期限などが厳格に定められています。
サポート期間中であれば、セキュリティホール等が発見されたり、バグが発見されたりすると修正パッチがリリースされるので、サーバー側はその修正パッチを導入することでPHPのセキュリティホールを塞ぐことができます。
しかし、このサポート期間が切れてしまったPHPのバージョンは、例え危険なセキュリティホールが見つかったとしても、修正パッチなどはリリースされず、そのまま放置されます。
この「セキュリティホールが修正されずに放置される」というのが、結構な大問題なのです。
PHPはWordPress等のシステムを動作させる基盤になるソフトウェアです。
そのソフトウェア自体にセキュリティホールが存在してしまうと、いくらWordPress等のシステム側でセキュリティ対策をしても、基盤になるソフトに穴が空いているので、全く意味が無くなってしまうのです。
そんなにPHPって頻繁にアップデートしてるの?と思われるかもしれませんが、ちょっと検索してみると、この数ヶ月の間でも、かなりの頻度でセキュリティアップデートが実施されていることが分かります。
- 【セキュリティ ニュース】PHPにコード実行の脆弱性、リスク「高」 – アップデートがリリース(1ページ目 / 全1ページ):Security NEXT
- 【セキュリティ ニュース】PHPに脆弱性、セキュリティ更新がリリース – 不正プログラムをインストールされる可能性も(1ページ目 / 全2ページ):Security NEXT
- 【セキュリティ ニュース】セキュリティアップデート「PHP 7.2.8」がリリース(1ページ目 / 全1ページ):Security NEXT
- 【セキュリティ ニュース】PHP脆弱性「CVE-2018-17082」 – キャッシュ汚染のおそれ(1ページ目 / 全1ページ):Security NEXT
こういったアップデートが、サポート切れのPHPでは行われなくなる・・・ちょっと怖いですね。
今後のサポート計画
PHPのサポートは、公式サイトで明確に発表されています。
それによると現状では下記のようなサポート期限が定められているようです。
- PHP7.4 2022年11月28日
- PHP8.0 2023年11月26日
- PHP8.1 2024年11月25日
- PHP8.2 2025年12月8日
PHP5系、PHP7系などはすでにサポート期限を迎えています。
ただし、これには一部例外があり、サーバーがCentOSを利用している場合、CentOS側が独自にPHPのバージョンをサポートしており、その中ではPHP5.3.3が2020年までセキュリティ対策等のアップデートを実施するということになっているようです。
CentOSを利用しているサーバーで、適切に修正パッチが適用されている環境であれば、旧バージョンといえどもまだしばらくは安心した運用が可能です)
古いPHPを使うことによるデメリット
古いPHPをそのまま利用し続けるということは、セキュリティホールを放置するといったリスクだけでなく、最新の機能が使えないというデメリットも存在します。
PHP5.4以上では「名前空間」や「クロージャ」、利用出来る配列の短縮表記や、多重継承を実装するトレイト機能、配列展開/可変長引数。PHP7.x系では変数の型指定やNull 合体演算子、ヒアドキュメントの機能強化やアロー関数など、バージョンアップにつれて非常に利便性の高い機能が追加されています。
また、先人の作った便利なプログラムパッケージである「ライブラリ」や「プラグイン」といった機能を利用する場合にも、昨今ではPHP5.6以上や7.2以上ではないと対応しないといったことも増えており、それはWordPressのプラグインやテーマも例外ではありません。
独自に構築したサーバーで、多額の費用を掛けて作った独自の社内システムが古いPHPのバージョンに依存している・・といったことであればともかく、WordPressを使っている上で、古いPHPをそのまま利用し続けるメリットはセキュリティ的な意味からも、今後の保守・運用の面からも、全くといって良いほどありません。
WordPressもバージョンアップできなくなる!?
今後WordPress導入に必要なPHPの最低バージョンをもっと最新のものにしよう!という動きも出てきており、もしそうなった場合古いPHPを使っていると、WordPressのバージョンアップさえ出来なくなります。
レンタルサーバーの動向
最近レンタルサーバーを借りたり、WordPressを設置したりした場合、さくらインターネットやエックスサーバーと言ったメジャーなサービスでは、バージョン8.x系が標準で利用されるようになっているため、とりあえずしばらくは安心できます。
またそういった新しいサーバーでは、最新版のPHPが利用出来るようサーバーの管理画面などからバージョン変更が出来るようにもなっているので、今後のバージョンアップなどが発生した場合でも、柔軟に対処出来るようになっています。
問題なのはVPSや独自サーバー、古いレンタルサーバーなどで、PHP5.3以下等が標準採用されているケースです。
そういった場合、サーバー管理者などに連絡してPHPのバージョンアップをしてもらうか、サーバー移設と言った手段も検討する必要があります。
PHPが古くてもWordPressが最新版だから・・と安心するのでは無く、WordPressのバージョンアップがまだできるうちに、早い段階でサーバー側の環境をしっかりしたものに整えておきましょう。
なお、もしサーバー移設が必要になった場合、WordPress単体なら、下記のようなプラグインを利用することで一瞬でコピーできます。
さいごに
PHP等、サーバー側のミドルウェアにもバージョンがあり、セキュリティホールが存在したり、デメリットが発生するということは理解して頂けたでしょうか?
WordPressのようなオープンソースソフトウェアは日々進歩しており、またそのバージョンはPHP等のミドルウェアにも依存しています。
できるだけPHPのバージョン等に配慮している、最新のレンタルサーバーサービスを利用するか、正しく社内にサーバー管理者を置き、ミドルウェアの更新などにも注意して運用していくように心がけましょう。