wp-config.phpには外部からのリクエストを遮断する設定を追加します。
// 外部リクエストを遮断する
define('WP_HTTP_BLOCK_EXTERNAL', true);
そのあと続けてwp-config.phpから、外部リクエストに対するホワイトリストを設定します。
// ホワイトリスト
define('WP_ACCESSIBLE_HOSTS', <ここにリクエストを許可するドメインを指定>);
目次
サンプル設定
外部の有料テーマや、外部サービスやプラグインとの連携などをしていなければこれで想定通りに挙動するかと思います。
なお、自身のドメイン部分はワイルドカード無しでも特に問題ありません。
// ホワイトリスト
define('WP_ACCESSIBLE_HOSTS', '*.example.com,*.wordpress.org');
reCAPTCHAを導入している場合
お問い合わせフォームにreCAPTCHAを導入する場合、ホワイトリスト設定を見直さないとreCAPTCHAが機能しません。
デベロッパーツールから拒否されている通信を確認したところ、以下の設定で直りました。
// ホワイトリスト
define('WP_ACCESSIBLE_HOSTS', '*.example.com,*.wordpress.org,www.google.com,google.com');
埋め込み機能を使用する場合
WordPressの埋め込みブロックを使おうとしましたが、外部URLは個別にドメインを追加していかなければ表示されませんでした。
チェックポイント
- WordPressのドメインはワイルドカードから許可する方が動作が安定する
-
自身のドメインだけを設定すると、WordPress系の更新通知が一切入らなくなりました。
また、WordPress系のサブドメインをひとつずつ設定しても一部のプラグイン更新通知が入らなくなったりとのよう動作が安定しないため、WordPressのドメインはワイルドカードから設定するのがおすすめです。 - 用途を選ぶ機能なので無理には使わない
-
実際に使ってみたところ、ブログ運用には向かない機能です。
無理に使う必要はありませんが、WordPressの活用方法によっては良いセキュリティ対策になるかもしれません。