更新しないサイトはHTMLに、問い合わせは外部フォームに PHPの穴から学んだ、安全とアクセスの両立
この記事でわかること
PHPの重大な穴(PHP2Shell)の対応をしながら、こう考えました。
「記事を更新しないサイトなら、HTMLにしてしまえばいいのでは?問い合わせが欲しければ、Googleフォームのような外部サービスを使えばいい」
そして、すぐに次の疑問がわきました。
「いや待てよ。PHPはサーバー会社が管理している。ということは、レンタルサーバーに置くこと自体がリスクなのか?いくらHTMLにしようが」
順番に整理してみます。
HTMLは、なぜ狙われにくいのか
PHPは、届いたデータを読んで、その場で計算して返す「受付係」です。
受付係に細工した質問を投げると、だまされて言いなりになることがあります。今回の穴がまさにこれです。
HTMLは、すでに刷り上がった「チラシ」です。
サーバーは置いてあるチラシを渡すだけで、何も計算しません。
細工したデータを送っても、読む人がいないので、だませる相手がいません。
レンタルサーバーに置くこと自体はリスクではない
ここが大事なポイントでした。
危ないのは「サーバーにPHPが入っていること」ではなく、「自分のサイトでPHPが動くこと」です。
- PHPは、サーバーに入っていても、呼ばれなければ動かない
.htmlへのアクセスは、受付がそのままファイルを渡して終わる。PHPは起動しない- だから、PHPのファイルが1つもないサイトは、今回の穴の入口になりようがない
レンタルサーバーのままで、HTMLにすれば十分安全です。
PHPのメールフォームを置くと?
ここで、PHPのメールフォーム(無料で配られているものなど)を置くと、話が変わります。
PHPのファイルを1つ置くと、そこが入口になります。

今回の穴は「アプリのコードが動く前」に突けるとされています。
フォームのプログラムが小さくても、きちんと作られていても関係ありません。フォームのページにアクセスされた瞬間に、PHPが起動するからです。
| 問い合わせの方法 | PHPが動くか | ひとこと |
|---|---|---|
| Googleフォーム | 動かない | 無料。見た目は少しGoogleっぽい |
| formrun・Formspreeなど | 動かない | デザインを合わせやすい。無料枠あり |
| LINE公式・メールのリンク | 動かない | いちばん簡単 |
| PHPのメールフォーム | 動く | 今回のような穴の入口になる |

記事を書くサイトなら「見せる側」と「作る側」を分ける
WordPressで記事を書き続けたいサイトでも、手はあります。
- 見せる側:WordPressの記事を、PHPを使わないHTMLに書き出して公開する(書き出し用のプラグインがあります)
- 作る側:WordPressの管理画面は、自分だけが入れる場所(トンネルの奥など)に置く
これなら、検索にもSNSにもふつうに出て、表にはPHPが出ません。
「SNSのアカウントでログインした人だけ通す」形にすると、ボットは止められますが、Googleの巡回ロボットも入れず、検索から人が来なくなります。アクセスを大事にしたいなら、「見せる側はHTML」のほうが向いています。
HTMLでも残る心配
HTMLも、まったく狙われないわけではありません。
- サーバーやFTPのパスワードを盗まれて、書き換えられる → 強いパスワード・二段階認証
- 同じアカウントにWordPressが同居していて、そちらから書き換えられる → 分けて置く
- 埋め込んだ外部の部品(広告・解析タグ)が乗っ取られる → 部品は最小限に
それでも、表に出ている危ない場所は、PHPのサイトよりずっと少なくなります。
今回のPHPの穴について、WordPressのサイトでまずできることは、こちらにまとめました。
