website-security-essentials

Webインフラストラクチャおよびセキュリティ対策ホワイトペーパー

Cloudflare Edition
発行:株式会社ミカド
対象環境:WordPress開発・自社標準環境(Cloudflare仕様)
バージョン:V13.01

1. Executive Summary(エグゼクティブサマリー)

株式会社ミカドが提供する「StarterPack(Cloudflare仕様、以下「StarterPack」)」は、Web標準、セキュリティ、パフォーマンス、運用ガバナンスおよびAIクローラーへの情報提供方針を統合した、WordPress向けWebサイト基盤です。

本基盤の設計思想は、サーバーレスポンスやアップデート互換性を損なうおそれのある不要なプラグインや重複機能を抑制し、Cloudflareのエッジ層と最適化されたオリジンサーバーを役割分担させる「引き算の統治」にあります。

本ホワイトペーパーでは、StarterPackの多層防御アーキテクチャ、パフォーマンス最適化、運用ガバナンス、ならびにAIサービスを含む自動クローラー向けの情報提供・制御方針について説明します。なお、本サイト(https://mkd.jp)は、StarterPackの基盤をベースに構築してあります。

適用上の注意
本書に記載する対策は、リスクの低減を目的とするものであり、攻撃の完全な防止、脆弱性の不存在、可用性または検索・AIサービスへの掲載を保証するものではありません。実際の適用内容は、契約プラン、サイト要件、利用プラグインおよび外部サービスとの互換性に応じて決定します。

2. Architecture & Network Infrastructure(ネットワークアーキテクチャ)

StarterPackは、Cloudflareのエッジ層と、LiteSpeed Web Serverを利用するオリジンサーバーを連携させた構成を採用しています。

  • エッジプロキシ(Cloudflare Edge):WAF、DDoS緩和、レート制御、ボット対策およびキャッシュ機能を、契約プランと設定内容に応じて適用します。これにより、不正または不要なトラフィックを可能な範囲でオリジン到達前に検知・制御します。
  • オリジンランタイム:PHP 8.3以降を標準とし、WordPress本体、テーマ、プラグインとの互換性を検証したうえで、LiteSpeed環境を運用します。アプリケーションコードでは、型宣言、入力検証、例外処理およびメモリ使用量を含む品質基準を適用します。
  • アクセス元IPの復元:Cloudflareを経由した通信では、CF-Connecting-IPを参照してアクセス元IPを取得します。ヘッダーの偽装を防ぐため、オリジンへの直接アクセスを制限し、Cloudflareの正規IPレンジから到達した通信だけを信頼することを前提とします。可能な場合はWebサーバー層で復元し、アプリケーション側で処理する場合も入力値を無条件には信用しません。

3. Multi-Layer Security & Defense(多層防御セキュリティ)

攻撃、認証情報の探索および自動スキャンによるリスクを低減するため、エッジ、Webサーバー、WordPressおよび運用の各層に対策を配置します。

  • xmlrpc.phpへのアクセス制御:XML-RPCを利用しないサイトでは、WordPress起動前のWebサーバー層で外部アクセスを拒否し、不要な認証試行や濫用の対象領域を縮小します。Jetpack、モバイルアプリ、外部投稿ツール等で必要な場合は、一律遮断ではなく許可範囲を個別に設計します。
  • REST APIによるユーザー情報露出の抑制:未認証利用者に不要なユーザー列挙を許可しないよう、WordPress REST APIの認証・権限判定機構を利用して対象エンドポイントを制御します。REST API全体は停止せず、必要な公開機能との互換性を維持します。
  • データベース接頭辞の変更:構築時には既定のwp_以外の接頭辞を採用し、定型的な攻撃や誤設定に対する補助的な防御とします。ただし、接頭辞の変更はSQLインジェクション対策の代替にはならないため、プリペアドステートメント、入力検証、最小権限および継続的な更新を必須とします。
  • 認証情報・秘密情報の保護:パスワードは、用途に適した強固な一方向ハッシュで保存し、平文保持を避けます。復号が必要なAPIキー等はハッシュ化ではなく、Web公開領域外の秘密管理手段、適切な権限設定および必要に応じた暗号化によって保護します。秘密情報を格納する設定ファイルは、拡張子や隠し属性だけに依存せず、Webサーバーからのアクセスを明示的に拒否します。
  • CSPの一元管理:Content-Security-Policy(CSP)をサイト要件に応じて一元管理し、可能な限りnonceまたはhashベースの許可方式を採用します。管理画面を含めて基準となるポリシーを維持し、機能互換性が必要な箇所だけを検証済みのルールで調整します。ログイン状態を理由としたCSPの全面無効化は行いません。

4. Performance & Speed Optimization(パフォーマンス最適化)

表示速度と安定稼働の両立を目的として、外部通信、キャッシュ、フォント、画像および計測タグを統制します。

  • 外部HTTP通信のタイムアウト制御:ページ生成中の同期的な外部通信を最小化し、必要な通信には原則3秒以内の接続・応答タイムアウトを設定します。失敗時は、直前の正常データ、Transient等の一時キャッシュまたは代替表示へ切り替え、外部サービス障害がサイト全体へ波及しないようにします。
  • 外部フォント・アセット依存の削減:Google Fonts等の外部アセットは原則としてローカル配信へ切り替え、接続先の増加、プライバシー上の懸念および表示遅延を抑制します。フォントはライセンスを確認したうえでwoff2形式を採用し、実際に初期表示で必要なファイルだけをpreloadします。
  • キャッシュ機能の役割分担:CloudflareとLiteSpeed Cache(LSCWP)で同種の最適化を重複実行しないよう、責任範囲を明確化します。標準構成では、LSCWPを主としてオリジン側のページキャッシュに利用し、CSS/JavaScriptの縮小・結合・遅延は互換性検証済みの単一レイヤーへ集約します。サイト要件や契約プランに応じて例外を設けます。
  • 画像最適化と重要アセットの優先読込:アップロード画像からWebP等の最適化画像を生成し、配信条件に応じて使い分けます。再変換や将来の画質調整に備え、原本の削除はバックアップ方針と復元性を確認してから実施します。fetchpriority="high"は、実測によりLCP要素と確認できた主要画像に限定して付与します。
  • GTM・第三者通信の発火制御:Google Tag Manager等は、同意管理、計測要件および初期表示への影響を踏まえて読み込み条件を設計します。操作後の遅延読み込みを採用する場合は、初回操作前の離脱やページビューが欠落し得るため、計測精度を検証したうえで適用します。

5. Security Governance & Incident Prevention(運用ガバナンス)

設定変更による障害と、WordPress本体・テーマ・プラグインの脆弱性放置を防ぐため、権限分離、更新管理、監視および復旧手順を整備します。

  • 脆弱性情報連動型ステータス表示:管理画面上で、信頼できる脆弱性情報源とインストール済みコンポーネントのバージョンを照合し、リスクを段階表示します。修正版がある場合は、安全な更新経路を優先して提示します。未修正の重大な脆弱性を検知した場合は、更新ボタンを一律に停止するのではなく、影響評価、機能停止、代替コンポーネントへの切替、WAFによる暫定緩和等を運用者へ提示します。CVSS値だけでなく、悪用実績、到達可能性、資産重要度およびベンダー情報を含めて判断します。
  • 重要コンポーネントの変更権限制御:セキュリティやキャッシュを担う重要プラグインは、一般運用者による停止・削除・設定変更を権限ベースで制限します。運用責任者からの可視性は維持し、変更履歴と管理対象を明確にします。自動更新は、ステージング検証、バックアップおよびロールバック手順と組み合わせて適用します。
  • 段階的キャッシュパージ:キャッシュクリアは、対象サイトへの影響を限定することを原則とします。まずオリジン側キャッシュを更新し、続いてCloudflare側で利用可能なURL、タグ、プレフィックスまたはホスト単位の対象限定パージを実行します。Purge Everythingは、障害対応等で必要性と影響範囲を確認できた場合に限ります。
  • 監査・復旧:管理者操作、更新、設定変更およびセキュリティイベントを記録し、定期バックアップと復元試験を実施します。重大な変更は、承認、ステージング検証、本番反映、監視、ロールバックの順で管理します。

6. AI Readiness & Machine-Readable Interfaces(AI・自動クローラー対応)

生成AIサービスや自動クローラーに対しては、アクセス方針と機械可読情報を明示します。ただし、各サービスによる解釈、遵守、掲載または回答への利用を保証するものではありません。

  • Content Signalsによる利用方針の表明:CloudflareのManaged robots.txt等を利用し、Content-Signal: search=yes, ai-input=no, ai-train=noのような機械可読ディレクティブで、検索、AI回答への入力およびAI学習に関する希望を表明します。これはアクセス制御や法的執行を自動的に保証する仕組みではないため、必要に応じて個別のクローラー制御、利用規約および技術的対策を併用します。Cloudflare側のManaged robots.txtとWordPress側の出力が競合しないよう、管理主体を一元化します。
  • 機械可読ドキュメントの提供:採用する連携仕様に応じて、OpenAPI文書、Markdownドキュメントその他の機械可読情報を提供します。/openapi.json等を高速に返却する場合も、キャッシュ、静的配信または軽量なルーティングを選択し、認証情報や内部仕様を不用意に公開しません。auth.md、Agent Skills、WebMCP等は同一の標準ではないため、実装対象とバージョンを個別に定義します。
  • RFC 9728への対応:OAuth 2.0で保護されたリソースを提供する場合は、RFC 9728に基づくProtected Resource Metadataを/.well-known/oauth-protected-resource等の所定位置から提供し、クライアントが認可サーバー等の情報を取得できるようにします。これはOAuth保護リソースの相互運用性を高める仕組みであり、一般的なAIクローラー対応やAI適合度の満点を保証するものではありません。

7. Assurance, Scope & Continuous Improvement(保証範囲と継続的改善)

StarterPackは、構築時の安全性だけでなく、運用期間中の変化へ継続的に対応することを重視します。WordPress、PHP、Cloudflare、ブラウザー仕様、利用プラグインおよび脆弱性情報の変化を定期的に確認し、必要に応じて標準構成を改訂します。

本基盤の評価は、少なくとも次の観点で実施します。

  • 構成・設定レビュー
  • WordPress本体、テーマ、プラグインおよび依存関係の更新状況
  • HTTPセキュリティヘッダー、TLS、DNSおよびメール認証の外部評価
  • WAF、アクセス制御、ログおよびアラートの動作確認
  • バックアップの完全性と復元試験
  • Core Web Vitalsおよび実利用環境での性能評価
  • 重大変更後の回帰テストと文書更新

8. References(出典)

外部仕様の代表例:


© 2026 株式会社ミカド — MKD StarterPack (Cloudflare Edition) Infrastructure & Security Whitepaper