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では、今後も堅牢性に配慮したサイト構築を実施していきます。
