はじめに
2026年10月21日の夜、ホームページを一時停止する組織が相次ぎました。きっかけは、ホームページを動かすプログラミング言語PHPに見つかった2件の脆弱性です。翌22日には、高市首相がXで対応を呼びかけたことも報じられました。
当社が10月23日にGoogleで「ホームページ php」と打つと、検索候補に「確認方法」「かどうか」「見分け方」「停止」が並びました。自社のホームページがPHPで動いているのかを知らない人が、それだけいたということです。制作会社に任せきりなら、知らないのが普通だと思います。
この記事では、自社のホームページがPHPで動いているかを確かめる方法を、聞く・見る・調べるの順に書きます。後半では、サーバーでPHPを動かさない静的サイトという作り方と、静的サイトにしても残る守る場所を説明します。
対象読者
- 会社や店舗のホームページを持っていて、何で作られているか把握していない方
- 10月の一斉停止で制作会社から連絡が来て、何を聞けばいいか知りたい方
- 次に同じことが起きたとき、止めずに済む作りに興味がある方
2026年10月21日から22日に起きたこと
PHPの開発元は、2026年10月21日(日本時間23時)に、PHP 8.5.12、8.4.27、8.3.36、8.2.35を公開しました。公式の告知によると、修正したのはCVE-2026-109618とCVE-2026-109619の2件で、認証なしでリモートからコードを実行される脆弱性です。前日20日の予告では、2件ともCVSS v4.0で9.2と評価されています。告知には「完全な回避策はなく、更新だけが安全な選択」と書かれています。
IPAは21日に事前準備のお願いを出し、22日に注意喚起を公開しました。注意喚起のページでは、2件の組み合わせを「PHP2shell」と呼んでいます。PHP 8.1以前はサポートが終わっているため修正版が出ない、とも書かれています。
止まったサイトは、FNNプライムオンラインによると、厚生労働省、消費者庁、一部の自治体、ニコニコ、静岡銀行などです。トラベルボイスは観光・航空分野の対応をまとめていて、JALはWebサイトの該当ページを一時非公開に、ANAはグループ企業情報サイトを一時停止、京都バスは約1時間ホームページが見られなくなる可能性を案内、SCRAPは21日21時から緊急メンテナンスに入りました。どの社も、基幹システムへの影響や情報漏えいはないと説明しています。同じ記事には、ナウル共和国政府観光局が「自局サイトはPHPを使っていない」とXで発信したことも載っています。
日本経済新聞は、世界のウェブサイトの7割にPHPが使われていると書いています。これだけ広く使われている言語なので、自社のホームページがPHPで動いている可能性は、最初から高いと思って確かめたほうがよいです。
ホームページがPHPで動いているかの確認方法
確かめる方法は4つあります。上ほど確実で、下ほど手軽です。
| 方法 | 確実さ | 必要なもの |
|---|---|---|
| 制作会社・サーバー会社に聞く | 高い | 連絡先 |
| レンタルサーバーの管理画面を見る | 高い | サーバーのログイン情報 |
| WordPressのサイトヘルスを見る | 高い(WordPressの場合) | WordPressの管理者ログイン |
| 外から見える手がかりを調べる | 低い | ブラウザだけ |
制作会社・サーバー会社に聞く項目
ホームページを作った会社、または毎月の保守を頼んでいる会社に聞くのが一番確実です。「PHPですか」とだけ聞くと「対応済みです」で終わりがちなので、次の項目を聞いてください。
- サイトはPHPで動いていますか。WordPressなど、PHPで動くツールを使っていますか
- PHPのバージョンはいくつですか。8.5.12、8.4.27、8.3.36、8.2.35のどれか以上に上げましたか
- PHPを更新したのは誰で、いつですか(制作会社か、サーバー会社か、自動更新か)
- 8.1以前を使っている場合、どう対応しましたか(8.1以前には修正版がありません)
- 問い合わせフォームや採用フォームは、どこで動いていますか
契約先がサーバー会社だけで制作会社がいない場合は、サーバー会社のサポートに「契約中のプランで動いているPHPのバージョンと、10月21日の修正版を当てたか」を聞きます。
レンタルサーバーの管理画面
エックスサーバー、さくらのレンタルサーバ、ロリポップなど国内のレンタルサーバーには、管理画面に「PHPのバージョン設定」や「PHP Ver.切替」といった画面があります。ここにバージョンが表示されていれば、少なくともそのサーバーでPHPが使える状態です。
ただし、PHPが使えることと、ホームページがPHPで動いていることは別です。HTMLだけのサイトをPHP対応のサーバーに置いているだけ、という場合もあります。管理画面のファイル一覧(ファイルマネージャー)で、公開フォルダに .php で終わるファイルや wp-content というフォルダがあるかも見てください。あればPHPで動いています。
WordPressのサイトヘルス
ホームページがWordPressで作られているなら、PHPで動いています。WordPress自体がPHPで書かれているからです。
バージョンを知りたいときは、WordPressの管理画面で「ツール」から「サイトヘルス」を開き、「情報」タブの「サーバー」を開きます。「PHPバージョン」の行に、動いているバージョンが出ます。この数字が8.5.12、8.4.27、8.3.36、8.2.35のどれか以上なら、今回の修正版が当たっています。
外から見える手がかり
ログイン情報がなく、制作会社ともすぐ連絡が取れないときは、ブラウザだけでも手がかりを探せます。ここで分かるのは「PHPらしい痕跡があるか」までで、ないことの証明にはなりません。この限界は次の節で説明します。
URLの末尾の.php
ページのURLが https://example.jp/company/index.php のように .php で終わっていれば、そのページはPHPで動いています。お問い合わせフォームの送信先が contact.php や mail.php になっているケースも多いです。
/wp-admin/ と /wp-content/
ホームページのURLの後ろに /wp-admin/ を付けて開き、WordPressのログイン画面が出れば、WordPressで動いています。
ページのソースを見る方法もあります。Windowsなら Ctrl + U、Macなら command + option + U でソースが開くので、Ctrl + F(Macは command + F)で wp-content を探します。画像やCSSのパスに wp-content が見つかればWordPressです。
WordPressの公式サイト(wordpress.org)で試すと、ソースに wp-content が34か所、wp-json が1か所見つかりました。
レスポンスヘッダーのX-Powered-By
サーバーは、ページを返すときに「レスポンスヘッダー」という付加情報を一緒に返します。その中の X-Powered-By に PHP/8.3.36 のように書かれていれば、PHPで動いています。
ブラウザの開発者ツールで見られます。Chromeでの手順です。
- 調べたいページを開く
F12(Macはcommand + option + I)で開発者ツールを開く- 上の「Network(ネットワーク)」タブを選ぶ
- ページを再読み込みする
- 一覧の一番上の行(ページ本体)をクリックし、「Headers(ヘッダー)」の「Response Headers」を見る
X-Powered-By のほかに、Link に /wp-json/ が入っていればWordPress、Set-Cookie に PHPSESSID が入っていればPHPのセッションが動いています。
curlで確かめた結果
ターミナルが使える方は、curl -I で同じものが見られます。当社サイトと公開サイトで、2026年10月23日に実行した結果を載せます。
curl -I https://www.hanzochang.com/
HTTP/2 200
content-type: text/html; charset=utf-8
server: Vercel
x-nextjs-prerender: 1
当社サイトはNext.jsで作っていて、X-Powered-By はありません。ソースに wp-content も .php も出てきません。
curl -I https://wordpress.org/
HTTP/2 200
server: nginx
link: <https://wordpress.org/wp-json/>; rel="https://api.w.org/"
WordPressの公式サイトは、Link ヘッダーに /wp-json/ が出ています。X-Powered-By は、ここでも出ません。
外から見える手がかりの限界
手がかりが出なかったときの扱いには注意がいります。
X-Powered-Byは、サーバーの設定(expose_php=Off)で簡単に消せます。多くのレンタルサーバーやセキュリティ対策で消されていて、PHPの公式サイト(php.net)にcurl -Iをしても、このヘッダーは返ってきませんでした- URLが
.phpで終わらなくても、WordPressをはじめ多くのPHPのサイトは、設定で.phpを見せないURLにしています wp-contentのパスも、セキュリティのプラグインで別の名前に変えられます- CDN(Cloudflareなど)を前に置いていると、ヘッダーがCDNのものに置き換わります
手がかりが出たらPHPです。出なかったときは、分からない、です。PHPではない、とは言えません。その場合は、冒頭の表の上3つに戻って確かめてください。
PHPを使わないホームページの作り(静的サイト)
Malwarebytesの解説は、今回の脆弱性について、Webのリクエストを処理しているPHPはすべて危険にさらされている、と書いています。裏を返すと、公開サーバーでPHPを動かしていなければ、今回の脆弱性の対象にはなりません。
静的サイトは、ページをあらかじめHTMLファイルとして作っておき、公開サーバーはそのファイルを渡すだけ、という作りです。WordPressのように、閲覧のたびにPHPがデータベースを読んでページを組み立てる動作がありません。公開サーバーにはPHPもデータベースもありません。だから、PHPの修正版を当てる作業も、当てるまでサイトを止めるかの判断も起きません。
WordPressで作ったホームページも、デザインとURLをそのままに静的サイトへ作り替えられます。当社はAstroという静的サイトの生成ツールを使っています。お知らせや記事の更新は、更新の頻度に合わせて、担当者が書く仕組みを別に用意します。
静的サイトでも残る守る場所
静的サイトにしても、守る場所がなくなるわけではありません。PHPの脆弱性の対象から外れるだけで、リスクはゼロになりません。次の4つは、作りを変えても残ります。
| 守る場所 | 何をするか |
|---|---|
| ホスティング・CDNのアカウント | 二段階認証を有効にし、ログインできる人を絞る |
| ドメインとDNS | 名義と管理画面のログイン方法、DNSの設定内容を確認する |
| フォームの送信先 | 送信だけを受ける仕組みにし、迷惑投稿対策と送信先の制限を入れる |
| 生成の道具と依存パッケージ | 使うパッケージを絞り、更新を確認してから再生成する |
とくにフォームは、静的サイトでは別のサービスやサーバーで受けることになります。その送信先がPHPで動いていれば、そこは今回のような脆弱性の対象です。「ホームページはPHPを使っていない」と言うときは、フォームの送信先まで含めて確かめてください。
次に同じことが起きたときの判断
今回の対応で終わりではありません。PHP 8.2は2026年12月31日にサポートが終わります。IPAの注意喚起にあるとおり、8.1以前にはすでに修正版が出ていません。
次に大きな脆弱性が出たとき、ホームページの持ち主が取れる道は3つです。
- PHPを上げ続ける。制作会社かサーバー会社に、修正版が出たら当てる契約をしておく
- 修正版を当てるまでサイトを止める。今回、多くの組織がこれを選んだ
- 公開サーバーでPHPを動かさない作りに変える。当てる作業そのものをなくす
更新の少ない会社案内のサイトなら、3の静的サイトが向いています。毎日記事を書く、会員ログインがある、ECの決済があるサイトは、1か2の運用を整えるほうが合うこともあります。
よくある質問
制作会社から「対応済み」と連絡が来ました。何を確かめればいいですか?
PHPのバージョンと、更新した日時を聞いてください。8.5.12、8.4.27、8.3.36、8.2.35のどれか以上になっていれば、今回の修正版が当たっています。8.1以前だった場合は、修正版がないので、どう対応したかまで聞きます。
ホームページがPHP以外で作られていることはありますか?
あります。HTMLだけのサイト、Wix・Jimdo・STUDIOなどのサービスで作ったサイト、静的サイトの生成ツール(Astro、Hugo、Next.jsなど)で作ったサイトは、公開サーバーでPHPを動かしていません。サービスで作ったサイトは、サービス側の対応に任せる形になります。
PHPの対応はいつまで続きますか?
PHPを使い続ける限り続きます。PHPは年に1回新しいバージョンが出て、各バージョンに期限があります。期限が切れたバージョンには修正版が出ないので、8.2を使っているサイトは2026年内に8.3以上へ上げる予定も立ててください。
うちのサイトが静的サイトにできるか、どう判断すればいいですか?
当社のWordPress・PHPサイトの静的サイト化では、サイトのURLを送っていただければ、移行できるかと必要な作業を調べてお返事しています。調べた結果、WordPressのまま保守するほうが合うと判断したときは、そのままお伝えします。
まとめ
- 2026年10月21日から22日に、PHPの脆弱性(php2shell)への対応で官公庁・自治体・企業のホームページが一斉に止まった
- 確かめる方法は、制作会社・サーバー会社に聞く、レンタルサーバーの管理画面、WordPressのサイトヘルス、ブラウザの開発者ツールの4つ
- 外から見える手がかり(
.php、wp-content、X-Powered-By)は、出たらPHP。出なくてもPHPでないとは言えない - 公開サーバーでPHPを動かさない静的サイトは今回の脆弱性の対象にならないが、アカウント・DNS・フォームの送信先は別に守る

