この記事の要約
SSG化は、WordPressのサイトを静的なWebページに変換して公開する方法です。公開画面と管理画面を分離できるため、WordPressやデータベースが直接攻撃されるリスクを減らせます。ただし、動的な機能や更新作業には別の仕組みや工夫が必要で、管理画面の保護も引き続き欠かせません。
前回の記事「WordPressのセキュリティ対策」では、WordPressが狙われやすい理由と基本の対策を解説しました。
今回の記事では、基本の対策よりさらに一歩踏み込んだ「SSG(Static Site Generation:静的サイト生成)化」について解説します。SSG化とは、WordPressのサイトを静的なWebページに変換して公開する方法です。
サイトのSSG化は、WordPressの管理画面やデータベースにインターネットから直接アクセスできない構成にするため、リスクを減らす方法のひとつとして注目されています。
ただし、SSG化すればすべてのセキュリティリスクがなくなるわけではありません。導入方法によって仕組みや運用上の注意点も異なります。
本コラムでは、SSG化がセキュリティ対策につながる理由を解説し、代表的な導入パターンと導入前に知っておきたい注意点を紹介します。
1.SSG化がセキュリティ対策になる理由
通常のWordPressサイトとSSG化したサイトの違い
・通常のWordPressサイト(動的配信)
ユーザーがアクセスするたびに、サーバー上でPHPのプログラムが動きます。プログラムはデータベース(MySQL)からデータを取り出し、その場でHTMLページを組み立てます。
そのため、サーバーではプログラムとデータベースが常に動いていなければなりません。
・SSG化したサイト(静的配信)
記事を投稿・更新したときに、すべてのHTMLページをサーバーまたはローカル環境であらかじめ一括生成(ビルド)しておきます。
ユーザーがアクセスしたときは、完成した状態で保存してあるHTMLファイルを表示します。
両者の最大の違いは、ユーザーがWebサイトにアクセスしたときに「サーバーがその都度ページを作るか(動的)」「すでに完成しているページを返すか(静的)」という点です。
公開画面からWordPressへの攻撃リスクを減らせる
SSG化すると、Webサイトを閲覧するための「公開画面」と、記事を作成・更新する「管理画面」を分離した構成にできます。
一般的なWordPressサイトは、公開画面と管理画面の両方が同じWordPressシステム上にある構成です。
そのため、管理画面への不正アクセスや、WordPress本体やプラグインの脆弱性を悪用した攻撃を受ける可能性があります。
一方、公開サーバーが静的ファイルを配信するだけの構成なら、公開画面にアクセスしてもWordPress本体の処理を直接呼び出すことはできません。
WordPressを動かすサーバーを公開環境から分離し、外部から直接アクセスできないようにすれば、WordPressの脆弱性を悪用した攻撃は難しくなります。
つまりSSG化には、公開画面と管理画面を分離することで、WordPressやデータベースが直接攻撃されるリスクを減らせるというメリットがあります。
2.代表的な導入パターン4つ
WordPressのSSG化には、開発規模や社内のリソースに合わせて選べる複数の方法があります。ここでは代表的な4つの導入パターンを解説します。
導入パターン比較一覧
| 導入パターン | 特徴(メリット) | 注意点(デメリット) |
|---|---|---|
| ①プラグイン型 | コストを抑えて手軽に始められる | 管理画面側のセキュリティ対策は必要 |
| ②SSG化サービス型 | 保守を外部に任せられて手軽 | 毎月のランニングコストがかかる |
| ③ヘッドレスCMS型 | 自由度が高く、柔軟にサイトを構築できる | 専門的なシステム設計・開発スキルが必要 |
| ④Markdown移行型 | 管理画面が不要になり最も安全 | 更新に専門知識が必要で非エンジニアには不向き |
①手軽さを重視する方法:プラグインで静的ファイルを生成する
既存のWordPressに専用のプラグインを導入し、ボタンひとつで静的ファイルを書き出す方法です。
• 特徴
既存のサイト環境を大きく変えずに、最も手軽に低コストでSSG化を試せます。
• 注意点
公開画面は安全になりますが、多くの場合、WordPressの管理画面は同じサーバー内に残ります。そのため、Basic認証やIP制限など、管理画面側のセキュリティ対策は引き続き必要です。
②管理を外部サービスに任せる方法:SSG化サービスを利用する
WordPressの静的化とホスティングに特化した外部のSaaS型サービスを利用する方法です。
• 特徴
環境構築やサーバーの保守から管理画面側のセキュリティ対策まで、サービス側に任せられるため、運用の手間がほとんどかかりません。
• 注意点
専門のSaaSを利用するため、初期費用や月額のランニングコストがかかります。
③自由度を重視する方法:ヘッドレスCMSを使って構築する
コンテンツを管理する仕組み(バックエンド)と、Webサイトの公開画面(フロントエンド)を切り離して構築する開発手法です。
• 特徴
公開画面は「Astro」や「Next.js」などの静的サイトジェネレーターで作り、コンテンツ管理にはWordPress REST APIや、「microCMS」などのSaaS型CMSを選べます。
そのため、デザインや機能の自由度が高いことが魅力です。
• 注意点
構成の自由度が高い反面、専門的な開発スキルが必要です。また、コンテンツ管理にWordPressを使う場合は、管理画面やAPIなどを引き続き保護しなければなりません。
④WordPressに依存しない方法:Markdownなどのファイルでコンテンツを管理する
WordPressをそもそも使わず、記事やページをMarkdown形式のテキストファイルで管理する方法です。
• 特徴
サーバー上から管理画面やデータベースそのものがなくなるため、4つのパターンの中で最も安全かつ軽量なサイトを構築できます。
• 注意点
記事を更新するときは、Markdownファイルを直接編集したり、Gitなどのツールでバージョン管理をしたりする必要があります。そのため、プログラミングの知識がない担当者には扱いにくい方法です。
3.SSG化の注意点
SSG化はセキュリティ対策として有効ですが、万能ではありません。
従来の動的なWordPressサイトとは仕組みが異なるため、導入前に以下の注意点を理解しておく必要があります。
機能面の注意点:動的な機能は別の仕組みが必要になる
あらかじめ生成した静的ファイルを公開するため、ユーザーの操作に応じて表示が切り替わる「動的機能」がそのままでは動かなくなります。
• 影響を受ける主な機能
サイト内検索、コメント欄、お問い合わせフォーム、会員限定のマイページ機能など。
• 対策
これらの機能は、外部サービスやAPI、別のサーバーサイド処理などを組み合わせれば実現できます。ただし、従来のWordPressと同じ機能を利用するには、追加の開発や設定が必要になることがあります。
運用面の注意点:更新作業の手間とタイムラグ
通常のWordPressでは、記事の公開ボタンやプレビューボタンを押すだけで変更がすぐに反映されます。SSG化したサイトで変わるのは次の点です。
・ビルド時間:記事を追加・修正するたびに、サイト全体(または差分)のHTMLを再生成する「ビルド」という処理が行われます。そのため、修正が実際のサイトに反映されるまでに数分から数十分かかります。
記事数の多いサイトでは、更新にかかる時間も考慮に入れなければなりません。
・プレビュー:下書きの記事が実際にどう見えるかを確認する「プレビュー機能」を使いたい場合は、プレビュー専用の確認環境(検証サーバー)を別に用意するなどの工夫が必要です。
セキュリティ面の注意点:管理画面の保護は引き続き必要
SSG化して公開画面とWordPressの管理画面を分離しても、WordPress自体の脆弱性がなくなるわけではありません。
プラグイン型やヘッドレスCMS型などで、管理画面にインターネットからアクセスできる状態になっていれば、不正ログインや脆弱性を悪用した攻撃を受ける可能性があります。
そのため、SSG化した後も管理環境へのアクセスを適切に制限することが重要です。
• ローカル環境で管理する
WordPressをローカル環境だけで動かし、そこから静的ファイルを書き出すようにすれば、管理画面そのものがインターネット上に公開されません。
• 社内ネットワークやVPNでの運用
WordPressをクラウドやレンタルサーバー上に置く場合は、社内ネットワークやVPN(仮想専用線)経由でしか管理画面にアクセスできないように制限します。
• IP制限や多要素認証の組み合わせ
アクセスできるIPアドレスをオフィス環境だけに絞る「IP制限」や、IDとパスワードに認証をもう1段階加える「多要素認証」を組み合わせて、不正アクセスのリスクを減らします。
自社サイトに適しているか:機能と運用体制を踏まえて判断する
SSG化が適しているかどうかは、Webサイトの目的や利用している機能、更新頻度などによって異なります。
例えば、コーポレートサイトやサービス紹介サイトのように、情報の閲覧が主な目的で更新頻度もそれほど高くないサイトは、SSG化を検討しやすいといえます。
一方、次のようなサイトでは慎重な検討が必要です。
・会員制サイト
ログインや会員ごとの情報表示など、動的な処理が多い
・ECサイトやニュースメディアなど、頻繁な更新や即時反映が必要なサイト
更新から公開までにかかる時間が、業務や利用者の利便性に影響する
・記事数が多い大規模なサイト
ビルド時間が長くなりやすく、更新方式によっては運用負荷が大きくなる
ただし、これらのサイトでSSG化ができないわけではありません。動的な機能を別のシステムに任せたり、更新された部分だけを効率よく生成する仕組みを導入したりすれば、対応できる場合もあります。
まとめ
今回は、WordPressのセキュリティ対策としてのSSG化について、代表的な導入方法や、導入の際に知っておきたいことなどを解説しました。
いろいろな導入方法をご紹介しましたが、セキュリティ上のメリットだけでなく、必要な機能を維持できるか、無理なく運用を続けられるかという視点で判断することが大切です。
自社サイトがSSG化に向いているか、どの導入方法が最適かを検討して、運用しやすいセキュリティ対策を行いましょう。
株式会社パパグラムでは、「サイトのSSG化について検討したい」「WordPressのセキュリティに不安がある」などのご相談も承っております。お気軽にお問い合わせください。