本稿はWordPress運用者が最初に押さえるべき防御定数を3つに絞って解説します。対象はすべてのWordPress運用者です。コードは最小限に示し 仕組みと副作用と運用判断を平易にまとめます。
■ 結論
守りの起点は管理画面の編集禁止と通信の暗号化と外部送信の既定を閉じることです。具体的にはDISALLOW_FILE_EDITとFORCE_SSL_ADMINとWP_HTTP_BLOCK_EXTERNALの3つが軸になります。いずれも意図が明確でチーム運用でも迷いが少ない点が強みです。
■ そもそも防御定数とは
WordPressの動作を根本から変えるスイッチです。管理画面の設定よりも優先されます。事故の芽を設計段階で摘むための前提条件だと捉えると理解が早まります。
■ 定数1 ファイル編集の遮断 DISALLOW_FILE_EDIT
狙いは管理画面からの直接改ざんをゼロに近づけることです。テーマエディターとプラグインエディターの使用を止めます。正規の権限を奪取された場合でも破壊範囲が狭まります。副作用は緊急時に管理画面から小修正ができない点です。変更経路をGitやSFTPに統一すると不便は最小化できます。
■ 定数2 管理画面を常時暗号化 FORCE_SSL_ADMIN
狙いは資格情報の漏えいを防ぐことです。ログインと管理画面への通信を強制的に暗号化します。パスワードやCookieが平文で流れなくなり盗聴リスクが大きく下がります。副作用は証明書の更新忘れやリバースプロキシ構成との食い違いです。証明書の自動更新と経路の一貫性を合わせて設計すると安定します。
■ 定数3 外部送信の既定を閉じる WP_HTTP_BLOCK_EXTERNAL
狙いは不要な外部通信を止めて影響範囲を狭めることです。サイトから外部へ出ていくリクエストを既定で拒否します。更新取得や決済連携など必要な送信先は許可リストで明示します。副作用は外部連携型プラグインの動作不全です。必要先を棚卸しし名称と用途を台帳化すると混乱を避けられます。
■ なぜこの3つが軸なのか
攻撃は権限の乗っ取りと通信の盗み見と外部経由の抜け道に集約されます。編集禁止で乗っ取り後の破壊を抑えます。暗号化強制で資格情報の奪取を抑えます。外部送信の既定閉鎖で想定外の経路を抑えます。重ねて効くため合算効果が高い点が採用理由です。
■ よくある誤解への答え
編集禁止は開発の足かせではありません。変更経路の統一が品質を上げます。暗号化は速度低下を招くとの不安がありますが現行の実装では差は極小です。外部送信の遮断は不便に見えますが許可リスト方式は監査と説明責任を強くします。
■ 現場での判断基準
公開サイトは常時有効が基本です。会員制や決済連携の有無や外部APIの数で許可リストの粒度を決めます。制作段階は検証環境で同じ定数を入れて挙動を事前確認します。手戻りを避けるため変更の可否を責任者と決め打ちにします。
■ 関連プラグインの紹介
Really Simple SSL
常時SSL化と混在コンテンツ解消を支援します。証明書や経路調整に不慣れな環境で有効です。FORCE_SSL_ADMINの意図を補完します。
WP Activity Log
だれがいつ何をしたかを記録します。防御定数で封じた操作の試行も事実として可視化できます。監査対応や委託管理の説明に役立ちます。
Solid Security by SolidWP
ファイル編集の無効化や通知など複数の強化を一か所で扱えます。ポリシーをまとめて適用したい中小規模の運用に向きます。
Wordfence Security
アプリケーションファイアウォールとマルウェア検査を提供します。防御定数の基本線に加えて侵入経路の遮断と検知を重ねられます。
■ 実装例 (コピペ可能)
以下をwp-config.phpのコメント行の直後に置きます。公開前に検証環境で挙動を確認します。
<?php
// 管理画面のファイル編集を禁止
define('DISALLOW_FILE_EDIT', true);
// 管理画面を常時暗号化
define('FORCE_SSL_ADMIN', true);
// 外部送信を既定で遮断
define('WP_HTTP_BLOCK_EXTERNAL', true);
// 必要な送信先を明示
// 複数ある場合はカンマ区切り
define('WP_ACCESSIBLE_HOSTS', 'api.wordpress.org,downloads.wordpress.org');
■ さらに踏み込みたいとき
閉域で運用する基幹サイトではDISALLOW_FILE_MODSも検討対象になります。更新や追加の操作自体を止めるため強力です。適用は限定環境が良策です。更新設計と責任分界が前提になります。
■ まとめ
防御定数は設定の一項目ではなく運用の前提条件です。編集禁止と暗号化強制と外部送信の既定閉鎖で守りの土台が固まります。副作用は運用設計で吸収できます。まずは3つをチームの共通ルールにし現場の判断を早くします。プラグインは土台を補完し監査と可視化を支えます。今日から定数が効く前提で会話を始めることが最短の強化です。
■ ご案内
本稿の内容に沿った運用設計の相談を承ります。防御定数の適用方針のレビューや許可リストの設計やログ基盤との連携設計まで対応します。状況整理だけの相談も歓迎します。責任分界と再現性を重視し現場で迷わない運用を一緒に整えます。お気軽にご相談ください。