PAGE
TOP

Column

Webサイトの堅牢性をどう確保するか?HTMLサイトからWordPressまで、制作で実践するセキュリティ設計

Webサイトのセキュリティは、「脆弱性のあるコードを直す」だけでは十分ではありません。
近年は CMS・外部サービス・通信経路・サーバー設定・フォーム・JavaScript…
あらゆるレイヤーで攻撃が発生します。

特にWordPressを中心としたCMSサイトでは、サイト制作=セキュリティ設計の戦略と言っても過言ではありません。

HTMLサイト・WordPressサイトに共通する“堅牢性を確保するための設計思想” を、制作者の視点で解説します。

HTMLサイトでも攻撃は起こる。

「WordPressじゃないから安全」というのは誤解です。
静的HTMLサイトでも攻撃は普通に発生します。

HTMLサイトで起こる攻撃例

  • ディレクトリリスティング(ファイル丸見え)
  • jsファイルの改ざん
  • iframe埋め込み攻撃
  • フォームスパム
  • Basic認証なしのステージング漏洩
  • サーバー側の設定不備で .env やバックアップファイルが流出

HTMLだから安全というわけでもなく、「攻撃対象になる情報が少ないだけ」にすぎません。

そのため、静的サイトでも

  • HTTPS(TLS1.2以上)
  • ディレクトリインデックス無効化
  • Basic認証でステージング保護
  • X-Frame-Options や CSP を設定

などの最低限の防御策が必要です。

WordPressは「設定で守るサイト」

WordPress は世界シェアが高いため攻撃が多いですが、実際には正しく運用すれば非常に安全です。
問題はプラグインでもコアでもなく、

  • 「古い状態のまま放置される」
  • 「不要な機能が有効化されたまま」
  • 「サーバーもテーマも管理者も、誰も責任を持っていない」

という運用の問題がほとんどです。

WordPressで最低限やるべき堅牢化

  • コア/テーマ/プラグインの更新管理
  • 不要なプラグイン・テーマの削除
  • XML-RPC の無効化(基本不要)
  • ログインページの変更 or reCAPTCHA
  • REST API の制限(投稿者情報の露出防止)
  • WAF(Web Application Firewall)の導入
  • 書き込み権限の最小化

特にXML-RPCとREST APIの著者情報取得は、ブルートフォース・情報漏洩の定番ルートなので注意が必要です。

制作者としての「堅牢性設計の基本思想」

セキュリティは後付けではなく “設計の一部” として組み込むべきです。
その際には次の3つのレイヤーを意識します。

① アプリケーションレイヤー(CMS・テーマ)

サイト内部のセキュリティ。

  • 不要なコードを置かない
  • 古いJavaScriptライブラリの更新
  • ACFで入力制御
  • formのバリデーション
  • 出力エスケープ(esc_html()など)

特に PHP8 では古いコードが脆弱性の温床となることも多く、テーマの品質が堅牢性を左右します。

② インフラレイヤー(サーバー)

サーバーや通信の堅牢性。

  • HTTPS/HSTS
  • WAF
  • FTPではなくSFTP
  • PHPバージョンの管理
  • パーミッション設定(644 / 755)
  • 不要なモジュールを無効化

サーバー側の設定は、ホスティング事業者の品質に密接に依存します。

私の推しのサーバーサービス【エックスサーバー】が評価される理由は、このレイヤーの設定が水準以上である点が大きいです。

③ 運用レイヤー(人と運用)

最後に重要なのは人間です。

  • 管理者権限を必要最小に
  • パスワード管理(2段階認証)
  • 不審なメールを開かない
  • 定期的なバックアップ取得
  • 保守・更新の契約を結ぶ

特に多い問題は「ノーメンテの放置状況が続き、いつの間にか破られている」という状況。
これを防ぐには、運用の設計が不可欠です。

セキュリティは“1つの対策では不十分”

堅牢性は、次のように複数レイヤーで守る構造(Defense in Depth)が必要です。

  • HTML/CSS → テーマ → WordPressコア
  • サーバー設定(WAF / HTTPS)
  • アクセス制御(Basic認証 / ログイン制限)
  • バックアップ
  • 運用保守・監視

どれか1つが破られても他で守れるようにする。
これが「多層防御」という考え方です。

よく見かける危険なサイト

サポートの終了している有料テーマ

テーマにプラグインが大量に入っており、管理者がテーマもコードも一切理解していない状態。
サポートが終了していて、最新の環境(PHP8)に適合しない。

サーバープログラム(PHP,MySQL)や本体のバージョンが古いまま放置

WordPressではいつ事故が起きても不思議ではない運用。
万一、顧客への損害があった場合に深刻なダメージを受けます。

まとめ:堅牢性は「設計・環境・運用」の三位一体で守る

セキュリティは“設定”ではなく“設計”です。

  • HTMLでも攻撃はある
  • WordPressは運用で安全にも危険にもなる
  • テーマの品質がサイトの安全性を決める
  • サーバーは強い環境を選ぶべき
  • 最後は「運用」によって破られる

すべてが揃って初めて、堅牢なWebサイトになります。
制作者の役割は、サイトを作るだけでなく、正しく運用できる環境を設計することです。

これからのWebは、高速で、安全で、構造化されていることが求められます。
SMILEWORKSでは、今後も堅牢性に配慮したサイト構築を実施していきます。

ChatGPTに正しく情報を伝えるためのWeb構造とは?【AIO入門】
Color Picker APP を作った理由と、使いこなしガイド

Let’s Build
Something Together.

高い技術力と手厚いサポート、
それでいてコストは抑えめに。
Web制作・開発・保守まで、
まとめておまかせいただけます。
お気軽にご連絡ください。