更新が年に数回のクリニックのホームページなら、編集用の管理画面を作らないことも一つのセキュリティ対策です。当院で管理画面を廃止した運用と、その限界を紹介します。
今回は、クリニックのホームページを自分で制作する際の、セキュリティに関する一つの考え方をご紹介したいと思います。それは、そもそも「ログインページを作らない」という方法です。一般的なWebサイトでは、管理者がログインするためのページが設けられており、IDとパスワード、場合によっては二段階認証などを利用して管理画面にアクセスします。管理者はそこから記事を編集したり、ページを削除したり、サイトの設定を変更したりすることができます。一方、ログイン情報を持たない人は管理画面にアクセスできない仕組みになっています。これは通販サイトやブログなど、さまざまなWebサイトで採用されている一般的な方法です。しかし、こうしたログインページはサイバー攻撃の対象にもなります。そこで今回は、オリジナルのホームページを制作するのであれば、そもそもログインページを設けない方が安全なのではないか、という考え方について取り上げてみたいと思います。
ログインページは便利である一方、攻撃の入り口にもなる
先生がご自身でオリジナルのホームページを制作される場合、例えば情報を掲載するだけの1ページのサイトであれば、HTMLなどでページを制作し、SFTPやSSHを利用してWebサーバーにアップロードするだけでも公開できます。更新が必要になった場合も、手元のパソコンでファイルを編集し、再度サーバーにアップロードすれば済むわけです。このような構成であれば、必ずしもブラウザ上から操作する管理画面は必要ありません。一方、ブログのように頻繁に記事を投稿するサイトでは、WordPressに代表されるCMS(コンテンツ管理システム)を利用することが一般的です。CMSを利用すれば、ブラウザ上で記事を作成したり、過去の記事を修正したり、画像を追加したりすることができます。そのため、管理者がログインするためのページを設け、IDやパスワードなどによってアクセスを制限する仕組みが必要になります。
問題は、このログイン機能そのものが攻撃の対象になり得るということです。第三者にIDやパスワードを不正に取得され、管理画面への侵入を許してしまえば、サイト内の記事を勝手に書き換えられたり、すべて削除されたりする可能性があります。また、全く意図しない広告や不正なプログラムを設置され、サイトが乗っ取られてしまうことも考えられます。もちろん、ログインページ以外にもサイバー攻撃の経路は存在しますし、適切な認証やアクセス制限によってリスクを低減することも可能です。しかし、そもそも管理画面が不要なサイトであれば、それを作らないことで、少なくとも管理画面への不正ログインという攻撃経路をなくすことができます。破られて困るような機能を最初から作らなければ、その機能を狙った攻撃自体が成立しなくなるわけです。必要のない機能を設けないことは、それ自体が一つのセキュリティ対策になると考えています。
クリニックのホームページなら、管理画面を作らない選択肢もある
この考え方は、特にクリニックのホームページと相性がよいのではないかと考えています。以前、当サイトでも、WordPressを利用していたクリニックのホームページを、自分で制作した独自サイトへ移行した経験についてご紹介しました。今回の話も、その延長線上にあるものです。クリニックのホームページは、ブログのように毎日のように新しい記事を投稿するとは限りません。診療内容や診療時間、アクセス情報など、一度公開したら頻繁には変更しない情報が中心になることも多いと思います。更新するとしても、臨時休診のお知らせや年末年始の診療案内など、年に数回程度というクリニックもあるのではないでしょうか。その程度の更新頻度であれば、わざわざ管理画面を制作する必要はないのではないかと考えています。必要なときだけ手元のパソコンでページを修正し、サーバーにアップロードすれば十分です。更新のたびに多少の作業は発生しますが、年に数回であれば大きな負担にはならないでしょう。
むしろ、管理画面を設けることで、ログイン機能のセキュリティ対策やシステムの更新、脆弱性への対応など、余計な管理作業が増える可能性があります。もちろん、WordPressなどのCMSには便利な機能が数多くありますが、それらを十分に活用しないのであれば、管理画面を設けるメリットよりも、管理する負担の方が大きくなることも考えられます。特に、単純なHTMLなどで構成された静的なWebサイトであれば、CMSやデータベースを必要としない構成にすることもできます。サイトの仕組みそのものが単純になるため、複雑なシステムに比べて脆弱性が生じる箇所を減らしやすいという利点もあります。頻繁な更新を必要としないクリニックのホームページであれば、あえて管理画面を作らず、シンプルな構成にすることは十分に検討する価値があると思います。
実際に当院では、ホームページの編集用管理画面を廃止した
実際に、現在の当院のホームページでは、ブラウザ上からサイトを編集するための管理画面を完全に廃止しています。当院のホームページはLaravelというフレームワークで作っていますが、お知らせや診療案内はファイルとして管理しており、記事を書き込むためのデータベースや編集機能は持たせていない、ごくシンプルな構成です。厳密には、アクセス状況を確認するためのダッシュボードは一部残しており、こちらにはログイン機能が存在します。ただし、これはGoogleアナリティクスのデータを確認するためのものであり、ログインしてもホームページの記事を書き換えたり、削除したりできるわけではありません。少なくとも、サイトそのものを乗っ取られるという観点では、編集権限のある管理画面とはリスクの性質が異なります。また、このダッシュボードについても、スマートフォンを利用した二段階認証を設定しており、第三者が容易にアクセスできないようにしています。もちろん、アクセス解析の情報も適切に保護する必要はありますが、サイトの編集権限を持つ管理画面とは切り離した運用にしています。
では、実際にホームページのお知らせなどを更新したい場合はどうしているのかというと、現在はClaude Codeを利用しています。当院の場合、臨時休診や夏季休業、ゴールデンウィークなどのお知らせを掲載することはありますが、更新頻度は年に数回程度であり、月に1回も更新しないことがほとんどです。その程度であれば、管理画面を用意してブラウザから編集する必要性はそれほど高くありません。現在は、Claude Codeに「何月何日の臨時休診のお知らせを掲載してほしい」といった形で指示を出し、サイトのファイルを修正して、SSH経由でサーバーに反映する運用にしています。わざわざ管理画面を開いて自分で文章を入力するよりも、こちらの方が手間が少なく、むしろ効率的だと感じています。
こうした運用であれば、ホームページを更新する機能を一般公開されているWebサイト側に持たせる必要がありません。更新作業は手元の開発環境から行い、必要なときだけサーバーに反映すればよいわけです。もちろん、SSHの認証情報や作業に使用するパソコンの管理は必要ですが、少なくともWebサイト上のログインページを狙った不正アクセスについては、その入り口をなくすことができます。実際にこのような運用に移行してみると、更新頻度の少ないクリニックのホームページに、そもそも編集用の管理画面が必要だったのかと感じるところがあります。
頻繁に更新するサイトには向いていない
一方で、この方法がすべてのWebサイトに適しているわけではありません。例えば、現在ご覧いただいているClinic Tech Labのように、比較的頻繁に記事を更新するサイトでは、やはり管理画面があった方が便利です。もちろん、記事を更新するたびにファイルを編集し、サーバーにアップロードする方法でも運営できないわけではありません。しかし、記事の細かな修正や新しいページの追加などを繰り返す場合、毎回その作業を行うのは手間になります。また、サイト全体の設定を調整したり、ダッシュボード上で日々のアクセス状況を確認したりするのであれば、ブラウザから操作できる管理画面を用意しておく方が効率的な場合もあります。特に、1日に何度も記事を投稿するようなサイトでは、更新のたびにファイルをアップロードする運用は現実的ではないかもしれません。そうしたサイトでは、管理画面を設けた上で、適切な認証やアクセス制限などのセキュリティ対策を講じる方が合理的でしょう。
つまり、管理画面を作らないという方法は、すべてのサイトに当てはめるものではなく、サイトの規模や更新頻度、必要な機能によって判断する必要があります。クリニックのホームページのように、掲載する情報がある程度固定されているサイトだからこそ、選択肢になるのではないかと思います。
ログインページをなくしても、セキュリティリスクがゼロになるわけではない
ただし、ここで注意しておきたいのは、ログインページを作らなければ絶対に安全というわけではないことです。例えば、静的なHTMLだけで構成されたシンプルなサイトであれば、CMSやデータベースを利用した複雑なサイトに比べて、攻撃の対象となる機能を減らすことができます。単純な仕組みであれば、それだけ脆弱性が生じる箇所も少なくなるため、セキュリティの面では有利になると考えられます。しかし、Webサーバーやレンタルサーバーそのものに脆弱性が存在した場合には、サイトが改ざんされる可能性があります。また、サーバーを管理するためのアカウント情報が流出してしまえば、サイトの構成がどれだけ単純であっても被害を受けるおそれがあります。静的なサイトであっても、サーバー側の管理が不要になるわけではありません。
さらに、ホームページの制作や更新に使用しているパソコン自体の管理も重要です。例えば、パソコンが盗難に遭い、保存されていたSSHの認証情報などを第三者に悪用されてしまえば、そこからサーバーにアクセスされ、ホームページを書き換えられる可能性があります。また、レンタルサーバーの管理画面や、必要に応じて利用しているデータベースなども、当然ながら適切に保護しなければなりません。したがって、ログインページを作らないという方法は、あくまでも攻撃経路の一つを減らすための対策です。サーバーやパソコンのセキュリティ管理が不要になるわけではありませんし、すべてのサイバー攻撃を防げるというものでもありません。それでも、一般の閲覧者がアクセスできる場所に管理者向けのログイン機能を設けないことには、一定のメリットがあります。特に、そもそも必要のない管理画面をなくすことができれば、その分だけ攻撃の対象となる箇所を減らせるわけです。
必要のない機能は、最初から作らないという考え方
今回は、クリニックのホームページを自分で制作する際のセキュリティ対策として、「そもそもログインページを作らない」という考え方をご紹介しました。Webサイトを制作する際には、便利な機能を追加することに目が向きがちです。特に、自分でプログラミングをしてサイトを構築するようになると、管理画面やさまざまな機能を実装したくなることもあると思います。しかし、実際にはほとんど使用しない機能をわざわざ用意し、その機能を維持するためにセキュリティ対策や日々の管理が必要になっているケースもあるのではないでしょうか。クリニックのホームページのように、更新頻度が低く、必要な機能が限られているサイトであれば、最初から管理画面を作らないという選択肢もあります。
実際に当院でも、編集用の管理画面を廃止し、必要な更新はClaude CodeとSSHを利用して行う運用に移行していますが、現在の更新頻度であれば、むしろこの方が合理的だと感じています。複雑なものを作ってからセキュリティを強化するのではなく、そもそも攻撃の対象となる機能を減らしておくという発想です。すべてのサイトに適用できる方法ではありませんが、自分でクリニックのホームページを制作するのであれば、一つの選択肢として検討する価値があると思います。便利な機能を追加することだけでなく、必要のない機能を最初から作らないことも、サイトを安全に運営するための重要な考え方ではないでしょうか。