見出し画像

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サイトでは、文章を少し変えるだけでも、

  1. 修正するHTMLファイルを探す

  2. コードの中から変更箇所を探す

  3. 間違えないように書き換える

  4. ブラウザで表示を確認する

  5. サーバーへアップロードする

という作業が必要でした。

画像を追加するなら、画像サイズを調整し、保存場所を決め、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に手伝ってもらう。

そんなサイトに、わざわざ管理画面とデータベースを積む必要があるのか。

猫は最近、改めて思います。

ネットもリアルも、何も持っていないやつが、一番強い。笑

いいなと思ったら応援しよう!