HTMLサイトって、実はめちゃくちゃセキュリティ高くない?AIで「更新が面倒」という弱点まで薄れてきた話
めっちゃ晴れてるのに車の屋根が濡れてると思ったら
落ちた樹液がレジンのように固まっておりました。。。
どうも、猫です。
最近、ある店舗のWebサイトを作っています。
今回はWordPressではなく、HTML・CSS・JavaScriptを使った、いわゆる静的サイトです。
問い合わせフォームはなし。
予約システムもなし。
管理画面もなし。
問い合わせたい人には、LINEやInstagramなどの外部サービスへ移動してもらう。
サイト側で何でも処理しようとせず、必要な情報を見せることに特化したシンプルな構成です。
そんなサイトを作りながら、ふと思いました。
HTMLサイトって、実はめちゃくちゃセキュリティ高くない?
もちろん、HTMLそのものに、すごい防御機能が備わっているわけではありません。
ただ、攻撃する入口がほとんどないんです。
そもそも、どこから攻撃するん?
一般的なWordPressサイトやWebシステムには、さまざまな機能があります。
管理画面、ログイン機能、データベース、問い合わせフォーム、ファイルアップロード、会員機能、検索、予約、決済、外部APIとの連携。
どれも便利な機能です。
ただし、機能が増えるということは、それだけ守る場所も増えるということです。
管理画面があれば、不正ログインを防がなければならない。
入力フォームがあれば、不正なデータやプログラムを送り込まれないようにしなければならない。
データベースがあれば、中の情報を抜かれないようにしなければならない。
ファイルをアップロードできるなら、危険なファイルを置かれないようにしなければならない。
会員機能があれば、他人の情報を見られないように権限を管理しなければならない。
機能が増えるたびに、便利にはなります。
その一方で、攻撃される可能性のある場所、設定を間違える可能性のある場所、定期的に確認しなければならない場所も増えていきます。
ところが、ただHTMLを表示するだけのサイトには、その入口自体がほとんどありません。
ログイン画面がない。
データベースもない。
入力フォームもない。
サーバー上でPHPなどのプログラムも動いていない。
攻撃者からすれば、ドアをこじ開けようにも、そもそもドアがほとんどない状態です。

HTMLが強いというより、何も持っていない
ここは少し誤解されそうなので、きちんと説明しておきます。
HTMLで作れば絶対安全、という話ではありません。
サーバーのパスワードが漏れれば、ファイルを書き換えられる可能性があります。
ドメインやサーバーの契約アカウントを乗っ取られる可能性もあります。
外部からJavaScriptを読み込んでいる場合は、その配信元が改ざんされる可能性もあります。
サーバーそのものに問題があれば、静的サイトでも影響を受けます。
つまり、静的HTMLでも、
HTTPSの設定
強いパスワード
多要素認証
定期的なバックアップ
サーバーやドメインの適切な管理
不要な外部ライブラリを使わない
といった基本的な対策は必要です。
ただし、WordPressや一般的なWebシステムと比べると、守らなければならない範囲が圧倒的に少ない。
HTMLに特別な防御力があるというより、
余計なものを持っていないから、盗られるものも壊される場所も少ない。
これが静的HTMLサイトの強さです。

PHPやWordPressが危険なわけではない
ここで、
「じゃあPHPは危険なのか」
「WordPressは使わない方がいいのか」
という話になりそうですが、そう単純でもありません。
PHP、JavaScript、Python、Ruby、Java、C#。
どの言語でも、きちんと設計し、適切に更新し、正しく運用すれば、安全なWebシステムは作れます。
問題は、使用している言語そのものよりも、どのような構成で、どんな機能を持たせているかです。
同じPHPでも、会社情報を表示するだけの小さなサイトと、会員情報や決済情報を扱う業務システムでは、必要なセキュリティ対策がまったく違います。
フレームワークを使っているか。
管理画面があるか。
データベースがあるか。
入力フォームがあるか。
外部サービスと連携しているか。
利用者の個人情報を持っているか。
攻撃されたとき、どこまで影響が広がるか。
こうした構成の違いによって、リスクは変わります。
つまり、
WordPressだから危険
PHPだから危険
Javaだから安全
という単純な話ではありません。
重要なのは言語よりも、攻撃面の多さ、設定項目の多さ、保有する情報の価値、侵入された場合の被害範囲です。
一般的なWeb構成を比較してみた
そこで、一般的なWeb構成を相対的に比較してみました。
今回の比較では、OS、サーバー、使用言語、フレームワーク、ライブラリを最新に保ち、HTTPS、認証、権限設定、秘密情報の管理、バックアップなども適切に行っている前提にしています。
なお、表の数字は実際の事故率を示す統計ではありません。
公開されている技術の普及度、自動スキャンの対象になりやすさ、実装や設定の難しさ、侵入された場合の被害範囲などから見た、筆者による相対評価です。

表を見ると、静的HTMLはやはり低リスクです。
管理画面もデータベースもなく、サーバー側で複雑な処理を行わないため、侵入につながる入口が少ない。
一方で、会員、予約、決済、検索、ファイルアップロードなどの機能を持つWebシステムは、扱う情報の価値も高く、侵入された場合の被害も大きくなります。
ただし、ここで注目したいのはWordPressです。
WordPressは「使っているか」より「どう管理しているか」
WordPressは、まとめて一つの評価にするより、少なくとも次の2種類に分けた方が実態に近いと考えています。
適切に管理されたWordPress
WordPress本体を常に更新
テーマとプラグインも更新
使用するプラグインを厳選
不要なテーマやプラグインを削除
強固なパスワードと多要素認証
権限を必要最小限に設定
HTTPSを使用
バックアップを実施
サーバー設定も適切
定期的に状態を確認
ここまできちんと管理されているWordPressなら、侵入が成立する可能性はかなり下げられます。
ただし、WordPressは世界中で広く使われ、構造もよく知られています。
そのため、管理状態が良くても、自動攻撃や不正ログインを試されやすいこと自体は変わりません。
つまり、
ドアノブは頻繁にガチャガチャされるけど、きちんと鍵をかけている状態です。
更新不足・設定不備のあるWordPress
一方で、
古いWordPressを使っている
更新が止まったプラグインを残している
プラグインを大量に入れている
弱いパスワードを使っている
管理者アカウントを複数人で共有している
バックアップがない
サーバー設定が適当
不要な機能を放置している
制作者がいなくなり、誰も管理していない
こうしたWordPressは、リスクが一気に上がります。
WordPressそのものが危険なのではありません。
ただ、利用者が多く、攻撃対象になりやすいうえに、プラグインやテーマなどの管理対象も多い。
そこへ更新不足や設定不備が重なると、攻撃者から見れば非常に狙いやすいサイトになります。
WordPressの評価は、
WordPressだから危険
ではなく、
WordPressは管理状態によって安全性の差が非常に大きい
と考える方が正確です。

それでも静的HTMLが減った理由
では、セキュリティ面で有利な静的HTMLサイトが、なぜWordPressなどに置き換わっていったのでしょうか。
大きな理由の一つが、更新の手間です。
従来の静的HTMLサイトでは、文章を少し変えるだけでも、
修正するHTMLファイルを探す
コードの中から変更箇所を探す
間違えないように書き換える
ブラウザで表示を確認する
サーバーへアップロードする
という作業が必要でした。
画像を追加するなら、画像サイズを調整し、保存場所を決め、HTMLに正しいパスを書き、パソコンとスマートフォンの両方で表示を確認する必要があります。
複数のページに同じメニューが書かれている場合は、関連するファイルをすべて直さなければなりません。
一箇所直し忘れれば、ページによって内容が違うこともあります。
制作会社に依頼すれば、ほんの少しの文字修正でも、費用や待ち時間が発生します。
そこで広まったのが、WordPressなどのCMSです。
管理画面にログインして、文章を書き換え、更新ボタンを押す。
HTMLを知らない人でも更新できる。
そら便利です。
少しシステムが複雑になっても、更新のしやすさを優先してWordPressを選ぶ理由は十分にありました。
でも、AIが「更新の手間」を減らし始めた
ところが今は、状況が変わってきています。
ChatGPTのWork、CodexやClaudeのSkillsなどを使えば、WebサイトのファイルをAIに読み込ませ、日本語で修正内容を指示できます。
例えば、
営業時間を18時から19時に変更して
この画像をギャラリーの3枚目に追加して
料金表に新しいプランを追加して、スマホ表示も崩れないようにして
ナビゲーションの「サービス」を「ソリューション」に変更し、全ページへ反映して
といった形です。
AIは対象ファイルを確認し、必要なHTML、CSS、JavaScriptを修正できます。
さらに、サイトごとのルールをあらかじめ決めておけば、
作業前にバックアップを作る
既存デザインを勝手に変更しない
修正対象以外には触らない
画像は指定フォルダに保存する
パソコンとスマートフォンの表示を確認する
変更したファイルを一覧で報告する
問題があれば元に戻せるようにする
公開用ファイルをまとめる
といった手順も、かなり自動化できます。
つまり、静的HTMLの最大の弱点だった、
「更新にはHTMLを触れる人が必要」
という問題が、かなり小さくなってきています。

サイトの中に管理画面を持たせなくてもいい
これまでは、利用者が自分でサイトを更新できるようにするため、サイトの中に管理画面を作っていました。
でもAIを使うなら、必ずしもサイト自体に更新機能を持たせる必要はありません。
サイトはHTMLだけのシンプルな状態で公開する。
更新が必要になったときだけ、AIにファイルを修正してもらう。
修正結果を人が確認してから、サーバーへ反映する。
この方法なら、
公開サイトには管理画面を置かない
データベースを持たない
プラグイン更新も不要
普段は静的HTMLとして公開する
更新時だけAIを利用する
修正前の状態も残しておく
という運用ができます。
サイトの中に更新機能を積むのではなく、サイトの外側にいるAIを更新担当者として使うわけです。
これは、静的HTMLの使い方を大きく変える考え方やと思います。
もちろん、AIに丸投げはダメ
ただし、
AIが修正してくれるなら、確認せんでええやん
という話ではありません。
AIが間違ったファイルを修正したり、指示していない部分まで変更したり、パソコンでは問題なくてもスマートフォンで表示を崩したりする可能性はあります。
だからこそ、
作業前に元の状態を保存する
修正内容を一覧で報告させる
変更箇所を確認する
パソコンとスマートフォンで表示を確認する
本番サーバーへ直接変更させない
問題があればすぐ戻せるようにする
といった運用が必要です。
ただ、これはAIに限った話ではありません。
WordPressの管理画面から人が更新しても、文章を消したり、画像サイズを間違えたり、レイアウトを崩したりすることはあります。
変更作業には、誰が行うにしても確認と復旧手段が必要です。
AIだから危険なのではなく、確認せずに本番へ反映する運用が危険なんです。
更新しない会社サイトに、管理画面は必要なのか
会社のホームページ制作では、WordPressを使うことが当たり前のようになっています。
確かに、お知らせを頻繁に更新したり、複数のスタッフが記事を追加したりするなら、管理画面は便利です。
ブログ、採用情報、商品情報などを継続的に更新するなら、CMSを使うメリットは大きいでしょう。
ただ、実際にはどうでしょう。
サイトを公開してから、数年間ほとんど更新されていない会社サイトも珍しくありません。
更新しないのに管理画面がある。
使わないのにデータベースがある。
触らないのにプラグインが何個も入っている。
担当者は管理画面のパスワードすら覚えていない。
それでも、本体、テーマ、プラグイン、PHP、サーバーなどの保守だけは必要です。
これ、ほんまに必要なんやろか。
会社概要、事業内容、アクセス、問い合わせ先を掲載するだけなら、静的HTMLでも十分です。
問い合わせはメール、LINE、Instagram、Googleフォームなど、既存の外部サービスへつなげればいい。
年に数回しか修正しないのであれば、その都度AIに、
会社概要のこの文章を変更して
と指示して修正する方が、よほどシンプルかもしれません。
更新のためだけに、管理画面とデータベースを一年中動かしておく必要はないわけです。
高機能なサイトが偉いわけではない
Webサイトを作るとき、ついつい機能を増やしたくなります。
管理画面も付けたい。
問い合わせフォームも置きたい。
予約もサイト内で完結させたい。
SNSを自動表示したい。
チャットも付けたい。
会員機能も付けたい。
もちろん、本当に必要なら付けるべきです。
ただし、機能には必ず管理が付いてきます。
便利な機能を一つ追加するたびに、
確認する場所
更新するもの
壊れる可能性
設定を間違える可能性
攻撃される入口
バックアップすべきデータ
も増えていきます。
だからこそ、
付けられるかどうか
ではなく、
本当に必要かどうか
で判断しなければなりません。
高機能だから、良いサイトになるわけではありません。
必要な情報が伝わり、利用者が迷わず次の行動へ進めるなら、それでWebサイトとしての役割は果たせます。
AI時代に、静的HTMLがもう一度選択肢になる
静的HTMLは、古い技術ではありません。
必要以上の機能を持たせず、シンプルに情報を表示する。
更新が必要になったときだけ、AIを使って修正する。
これは、AI時代だからこそ現実的になった運用方法です。
毎日のように記事を書くなら、WordPressが便利です。
複数人が頻繁に更新するなら、CMSが必要です。
会員管理、予約、決済、検索などが必要なら、動的なWebシステムを作るべきです。
一方で、会社案内や店舗紹介が中心で、更新も年に数回程度なら、静的HTMLでもいい。
これまでネックだった更新作業も、AIによってかなり軽くできるようになりました。
どれが一番優れているかではありません。
目的に対して、必要な構成を選ぶ。
それだけです。
ただ、普通の会社案内サイトや店舗紹介サイトまで、何となくWordPressで作るのが当たり前になっている今だからこそ、一度考えてみてもいいと思います。
更新もしない。
ログインもしない。
データも持たない。
更新が必要になれば、そのときだけAIに手伝ってもらう。
そんなサイトに、わざわざ管理画面とデータベースを積む必要があるのか。
猫は最近、改めて思います。
ネットもリアルも、何も持っていないやつが、一番強い。笑
