本文へ移動
hanzochang

自社のホームページがPHPかどうかの確認方法|2026年10月の一斉停止(php2shell)で見直す、見分け方とPHPを使わない作り

公開

2026年10月21日夜から22日にかけて、官公庁・自治体・企業のホームページがPHPの脆弱性(通称php2shell)への対応で一斉に止まりました。自社のホームページがPHPで動いているかは、制作会社への質問、レンタルサーバーの管理画面、WordPressのサイトヘルス、ブラウザの開発者ツールで確かめられます。外から見える手がかりの限界と、サーバーでPHPを動かさない静的サイトという作り方も説明します。

はじめに

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の管理者ログイン
外から見える手がかりを調べる低いブラウザだけ
表
方法確実さ必要なもの
制作会社・サーバー会社に聞く高い連絡先
レンタルサーバーの管理画面を見る高いサーバーのログイン情報
WordPressのサイトヘルスを見る高い(WordPressの場合)WordPressの管理者ログイン
外から見える手がかりを調べる低いブラウザだけ

制作会社・サーバー会社に聞く項目

ホームページを作った会社、または毎月の保守を頼んでいる会社に聞くのが一番確実です。「PHPですか」とだけ聞くと「対応済みです」で終わりがちなので、次の項目を聞いてください。

  1. サイトはPHPで動いていますか。WordPressなど、PHPで動くツールを使っていますか
  2. PHPのバージョンはいくつですか。8.5.12、8.4.27、8.3.36、8.2.35のどれか以上に上げましたか
  3. PHPを更新したのは誰で、いつですか(制作会社か、サーバー会社か、自動更新か)
  4. 8.1以前を使っている場合、どう対応しましたか(8.1以前には修正版がありません)
  5. 問い合わせフォームや採用フォームは、どこで動いていますか

契約先がサーバー会社だけで制作会社がいない場合は、サーバー会社のサポートに「契約中のプランで動いている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での手順です。

  1. 調べたいページを開く
  2. F12(Macは command + option + I)で開発者ツールを開く
  3. 上の「Network(ネットワーク)」タブを選ぶ
  4. ページを再読み込みする
  5. 一覧の一番上の行(ページ本体)をクリックし、「Headers(ヘッダー)」の「Response Headers」を見る

X-Powered-By のほかに、Link に /wp-json/ が入っていればWordPress、Set-Cookie に PHPSESSID が入っていればPHPのセッションが動いています。

curlで確かめた結果

ターミナルが使える方は、curl -I で同じものが見られます。当社サイトと公開サイトで、2026年10月23日に実行した結果を載せます。

bash
curl -I https://www.hanzochang.com/
bash
curl -I https://www.hanzochang.com/
text
HTTP/2 200
content-type: text/html; charset=utf-8
server: Vercel
x-nextjs-prerender: 1
text
HTTP/2 200
content-type: text/html; charset=utf-8
server: Vercel
x-nextjs-prerender: 1

当社サイトはNext.jsで作っていて、X-Powered-By はありません。ソースに wp-content も .php も出てきません。

bash
curl -I https://wordpress.org/
bash
curl -I https://wordpress.org/
text
HTTP/2 200
server: nginx
link: <https://wordpress.org/wp-json/>; rel="https://api.w.org/"
text
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の設定内容を確認する
フォームの送信先送信だけを受ける仕組みにし、迷惑投稿対策と送信先の制限を入れる
生成の道具と依存パッケージ使うパッケージを絞り、更新を確認してから再生成する
表
守る場所何をするか
ホスティング・CDNのアカウント二段階認証を有効にし、ログインできる人を絞る
ドメインとDNS名義と管理画面のログイン方法、DNSの設定内容を確認する
フォームの送信先送信だけを受ける仕組みにし、迷惑投稿対策と送信先の制限を入れる
生成の道具と依存パッケージ使うパッケージを絞り、更新を確認してから再生成する

とくにフォームは、静的サイトでは別のサービスやサーバーで受けることになります。その送信先がPHPで動いていれば、そこは今回のような脆弱性の対象です。「ホームページはPHPを使っていない」と言うときは、フォームの送信先まで含めて確かめてください。

次に同じことが起きたときの判断

今回の対応で終わりではありません。PHP 8.2は2026年12月31日にサポートが終わります。IPAの注意喚起にあるとおり、8.1以前にはすでに修正版が出ていません。

次に大きな脆弱性が出たとき、ホームページの持ち主が取れる道は3つです。

  1. PHPを上げ続ける。制作会社かサーバー会社に、修正版が出たら当てる契約をしておく
  2. 修正版を当てるまでサイトを止める。今回、多くの組織がこれを選んだ
  3. 公開サーバーで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・フォームの送信先は別に守る
Xでフォローするお問い合わせ

この記事の株式会社hanzochangについて
少し紹介させてください!

この記事に関連する当社のサービス

WordPress・PHPサイトの静的サイト化

WordPressの更新作業とPHPの脆弱性対応から離れませんか?

WordPressやPHPで作ったホームページを、デザインとURLはそのままにAstroで静的サイトへ移行します。公開サーバーでPHPもデータベースも動かさない構成にし、フォームと更新方法は相談して決めます。

サービスの詳細を見る
ケーブルが絡んだ古いサーバーから、Jくんがウェブページを運び出し、軽い新しいページへ移すイラスト。
  • 現状の調査

    URLから、静的化できるかと必要な作業を確認。

  • 移行と転送

    デザインを引き継ぎ、旧URLは新しいURLへ転送。

  • 更新方法の用意

    お知らせやフォームの扱いを運用に合わせて設計。

業務改善・AI活用について、お気軽にご相談ください。