修正版が来るまでサイトを守る「入口で閉じる」応急処置 なぜ効くのか、どこまで効くのか

修正版が来るまでサイトを守る「入口で閉じる」応急処置 なぜ効くのか、どこまで効くのか

2026年10月21日、PHPの重大な穴(PHP2Shell)の修正版が出ました。
でも、レンタルサーバーでは、修正版を入れるのはサーバー会社の仕事です。自分では入れられません。

しかも、サポートの終わった古いPHP(8.1以前)には、公式の修正版が出ません。

「修正版が届くまでの今夜、どうする?」

そんなときの応急処置が、サイトを入口で一時的に閉じることです。
実際にやってみて、なぜ効くのか、どこまで効くのかを整理しました。

閉じるとは、何をすることか

サイトの入口の設定ファイル(.htaccess)に数行足して、どのページにアクセスされても、

「ただいまメンテナンス中です」

とだけ書いたページを返すようにします。
このとき、「503(一時的に休止中)」という印も一緒に返します。
これでGoogleに「一時的に休んでいる」と伝わり、検索の順位はほぼ落ちません。

元に戻すときは、足した数行を消すだけです。

なぜ、閉じれば攻撃されないのか

アクセスがサイトに届くまでの流れは、こうなっています。

訪問者(攻撃者)→ nginx(受付)→ Apache(.htaccessを読む)→ PHP(WordPressを動かす)

今回の穴は、一番右のPHPの中にあります。
攻撃者は、細工したデータをPHPに読ませる必要があります。

ところが、入口で閉じると、まん中のApacheの段階で「メンテナンス中」と返して終わります。
PHPは起動すらしません。 細工したデータを送っても、読む人がいない状態です。

エンジンの穴は、エンジンをかけなければ突けない。そういう理屈です。

修正版が来るまでサイトを守る「入口で閉じる」応急処置 なぜ効くのか、どこまで効くのか

どこまで効くのか(限界)

ただし、万能ではありません。

限界 中身
サイトが使えない 閉じているあいだは、訪問者も持ち主も管理画面に入れない。問い合わせフォームも止まる
同じアカウントの別サイト 同じ契約の別のサイトがやられたら、閉じたサイトのファイルも読まれる
PHP以外の穴 入口(nginxやApache)そのものに穴があれば防げない

特に2つ目が大事です。
同じアカウントにほかのサイトが同居していて、そちらもまだ修正版が入っていないなら、サーバー全体が安全になったわけではありません。
閉じたのは「このサイトが入口になること」だけです。

誰かのサイトを閉じるときは

人から預かっているサイトを閉じるときは、持ち主の了解が要ります。
閉じているあいだは、お店の情報も問い合わせも止まるからです。

私の場合は、「夜中だけ閉じて、朝に戻す」という形にしました。
寝ているあいだは訪れる人も少なく、攻撃は公表直後に増えやすいからです。

あくまで「つなぎ」

入口で閉じるのは、修正版が届くまでの応急処置です。
本当の対策は、PHPを修正版にすること、古い版なら8.3や8.4に切り替えることです。

修正版が来るまでサイトを守る「入口で閉じる」応急処置 なぜ効くのか、どこまで効くのか

PHPの版の確かめ方や切り替え方は、こちらにまとめました。

PHPの穴はエンジンにあった レンタルサーバーのWordPressで、自分にできること・できないこと

ブログ

BLOG

PAGE TOP