PHP問題とは?

その他

「PHP問題」とは、世界のWebサイトの多くを支えるプログラミング言語「PHP」の旧バージョンを使い続けることで生じる様々な問題のことです。
サポート期限が切れたバージョンには、セキュリティ低下や動作不全のリスク、およびそれに伴う社会的課題が潜んでいるのです。
古いバージョンを使い続けるリスクについて、解説します。

PHP問題が起こる背景と放置される要因

インターネット上に存在するWebサイトやWebアプリケーションの裏側では、さまざまなプログラミング言語が動いているのはご存じでしょうか?
中でも「PHP」というプログラミング言語は圧倒的なシェアを誇り、長年にわたり主役の座を維持しています。

調査データによると、サーバー側で動作するプログラミング言語のうち実に7割以上のWebサイトがPHPを採用しているのです。
特に、世界中のWebサイトの約4割以上を占めるオープンソースのCMSである「WordPress」がPHPで開発されていることが、高いシェアの背景にあります。

しかし、誰もが使っているという高い普及率こそが、現在大きな波紋を呼んでいるPHP問題の根底にあるのです。
PHP問題というのは、「公式のサポート期限が切れた古いバージョンのPHPが、依然として世界中の膨大な数のWebサイトで稼働し続けている問題」のことをいいます。

PHPはオープンソースの言語であり、世界中の開発者コミュニティによって日々改良が進められているのです。
機能の追加や速度の向上だけでなく、重大な欠陥(脆弱性)を修正するためのアップデートが定期的に配信されます。

しかし、PHPの各メジャーバージョンには公式によって、サポート期間が定められているのです。
通常、新バージョンのリリースから「2年間のバグ修正」と「1年間のセキュリティ修正」、計3年間が一般的なサポート寿命となっています。

期間を過ぎたバージョンは「EOL(サポート終了)」となり、以降は重大なセキュリティホールが見つかっても公式から修正パッチが提供されることは原則としてないのです。
現在、インターネット上にあるPHPサイトの多くがすでにサポートが終了した「PHP 7.x」や、それ以前のバージョンで動作していると言われています。

サポートが終了したバージョンのPHPで動作している財布IT業界全体、ひいては社会的なリスクとして問題視されているのです。
しかし、現実的にはいくつかのハードルがあるため、最新バージョンへのバージョンアップが推奨されているにもかかわらず多くの企業や個人が古いPHPを放置しています。

PHPはバージョンが上がると、古い関数や構文などが廃止されたり仕様が変更されたりするのです。
そのため、バージョンを安易に上げると今まで動いていたWebサイトやシステムが突然エラーを起こし、画面が表示されなくなるといった互換性問題が発生します。

多くのWebサイトが利用しているWordPress本体は最新のPHPに対応していても、独自に導入しているプラグインやデザインテーマが対応していないケースが多いのです。
開発したベンダーが更新を停止している場合、PHPをアップデートした瞬間にサイトが崩壊するリスクがあります。

Webサイトの運営者から見れば、古いPHPを使っていても表向きは正常にサイトが表示されてお問い合わせフォームも機能しているように見えるでしょう。
「問題なく動いているのになぜわざわざ費用と手間をかけてアップデートしなければならないのか」という意識の希薄さが、放置の一因になっています。

システムのバージョンアップには、影響調査、修正対応、入念なテストといった工程が必要となり、相応のコスト(外注費)やエンジニアの手間がかかるのです。
中小企業を中心として、外注費に割く予算やバージョンアップに必要な工程の専門知識を持つ人材が不足しているという実情があります。

放置する致命的なリスクと解決へのステップ

サポート切れのPHPを使い続けることは、自社だけでなく、顧客やビジネスパートナーにも甚大な被害を及ぼす可能性があるのです。
具体的なリスクとしてまずセキュリティの脆弱性を突いた不正アクセスがあり、サポートが切れたPHPに深刻な脆弱性が発見されるとハッカーが最大の脅威になります。

ハッカーは脆弱性を突いて攻撃を仕掛け、Webサイトのトップページを書き換えられたり不正なサイトへのリダイレクトを設定されたりする可能性があるのです。
また、マルウェアを仕込んで自社のサイトを訪れたユーザーのパソコンにウイルスを感染させる踏み台にされてしまいます。

データベースに保管されている顧客の氏名、住所、クレジットカード情報などが盗み出され、個人情報が漏洩する危険性もあるのです。

2つ目はパフォーマンス(表示速度)が低下することで、PHPはバージョンを重ねるごとに処理速度やメモリ効率が劇的に向上しています。
古いPHPを使い続けるとサーバーの処理遅延を引き起こすことになり、結果としてWebサイトの表示速度の低下、ユーザー離脱、SEO(検索順位)の悪化を招くのです。

多くのレンタルサーバーやAWSなどのクラウドサービスでは、セキュリティ維持のために、古いPHPの提供を段階的に終了しています。
サーバー会社側からアップデート期日が通知されてサイトが強制停止するか最新PHPへ自動移行するといった通知が唐突に届いた企業は、パニックになってしまうでしょう。

PHP問題を解消して安全なWeb運用を取り戻すためには計画的なバージョンアップが必要となるため、どのようなステップで進めるべきかを解説します。
まずは自社のWebサイトがどのバージョンで動いているかを確認し、同時にWordPressや各種システムのバージョン、プラグインの対応状況のリストアップが必要です。

本番環境をいきなりアップデートするのは絶対に避けて、本番サイトを丸ごとコピーした「テスト環境」を用意たうえでPHPのバージョンを上げてみましょう。
テスト環境で画面が崩れたりエラーが出たりした箇所を特定し、非対応のプラグインがあれば代替品を探して古いプログラムコードがあれば最新の構文へと書き換えるのです。

テスト環境での動作検証が完全に完了したら、アクセスの少ない深夜などの時間帯を狙って本番環境のPHPを切り替えます。
切り替え直後は、決済機能やフォームが正しく動くか入念に公開後テストを行う必要があるでしょう。

まとめ

PHP問題の本質は、サポート切れの古いバージョンを放置することによる「セキュリティの脆弱性」と「社会的なリスクの増大」にあります。
互換性のエラーやコストへの懸念からアップデートを先送りしがちですが、サイバー攻撃による情報漏洩や被害が発生した際の損失は計り知れないものです。
Webサイトを企業の貴重な資産として守るためにも、現状の環境を早期に把握して計画的に移行することが今まさに求められています。