WordPressサイトの重要な安全機能「自動更新」は有効ですか

王文暁

導入

WordPressサイトのセキュリティにおいて「自動更新」は命綱です。WordPressの自動更新は、サイトのセキュリティを保つために非常に重要です。定期的に更新を行わないと、脆弱性を悪用される可能性があり、サイトが乗っ取られる危険性が高まります。

2024年以来WordPressプラグインの脆弱性報告はだんだん増えている状態で、大部分の脆弱性が更新で修正されています。そのため、安全を守る「自動更新」は絶対に止めることができません。この記事では、自動更新が機能しなくなる要因と優先度順を理解し、問題を解決する手順を紹介します。

なぜ自動更新が重要なのか?

  • セキュリティリスク軽減:古いバージョンの脆弱性が多いので、攻撃されやすくなります
  • 機能改善や新機能導入:パフォーマンス向上や新機能が自動的に適用されます
  • 自動更新が便利:自動更新は WordPressバージョン3.9からあり、自動的にWordPressのCoreをアップデートできます

WordPressのCore自動アップデート機能には、以下のようなさまざまな設定があります。

  • データベースの設定: auto_update_core_dev、auto_update_core_minor、auto_update_core_major。
  • defineの設定: WP_AUTO_UPDATE_CORE、AUTOMATIC_UPDATER_DISABLED、DISABLE_WP_CRON、automatic_updater_disabled。
  • filterの設定: automatic_updater_disabled、allow_dev_auto_core_updates、allow_minor_auto_core_updates、allow_major_auto_core_updates、auto_update_core。

各設定は、WordPressのCore自動アップデートが有効かどうかを制御できます。優先度の高い設定をFalseにする時、優先度の低い設定が自動的に無効になります。

優先度1:根本的な無効化要因

システムクーロン(WP-Cron)の停止状態

  • 影響範囲:全自動更新(コア・テーマ・プラグイン)
  • 説明:この定数を無効に設定すると、Cron機能が実行されなくなります。そのため、プラグイン、テーマ、コアのアップデートロジックも実行されなくなります。
  • 確認方法
// wp-config.phpにこの定義がないか確認
define('DISABLE_WP_CRON', true);

自動更新の全体無効化設定

  • 影響範囲:全自動更新(コア・テーマ・プラグイン)
  • 説明:filterのautomatic_updater_disabledと定数AUTOMATIC_UPDATER_DISABLEDは,ウェブサイトの全体アップデートを制御しています。
  • 確認ポイント
    • wp-config.phpの設定:
      define(‘AUTOMATIC_UPDATER_DISABLED’, true);
    • テーマとプラグインなどの中にでのフィルター設定:
      add_filter(‘automatic_updater_disabled’, ‘__return_true’);

優先度2:コア更新の個別設定を精査

auto_update_core 全体コア更新のブロック

  • 影響範囲:全体コア
  • 説明:auto_update_coreFalseに設定すると、下の三つの設定は無効になります。つまり、これらの設定はすべて上書きされ、効果を持たなくなります。
  • 設定例
テーマとプラグインなどの中にこのフィルターがないか確認
add_filter('auto_update_core', '__return_false');

主要バージョン更新のブロック

  • 影響範囲:コアのメジャーバージョン(例:6.7→6.8)
  • 設定例
テーマとプラグインなどの中にこのフィルターがないか確認
add_filter('allow_major_auto_core_updates', '__return_false');

マイナー更新のブロック

  • 影響範囲:マイナーバージョン更新(例:6.7.1→6.7.2)
  • 設定例
テーマとプラグインなどの中にこのフィルターがないか確認
add_filter('allow_minor_auto_core_updates', '__return_false');

開発版設定の残留

  • 影響範囲:セキュリティ更新(例:6.7.1→6.7.2)
  • 説明:開発版は新機能がありますが、bugも付いているので、自分で考えて設定してください。
  • 設定例
テーマとプラグインなどの中にこのフィルターがないか確認
add_filter('allow_dev_auto_core_updates', '__return_false');

優先度3:データベースの設定

  • 設定場所:オプションテーブル(wp_options)
  • 確認すべきオプション
    • auto_update_core_major
      説明:filterのallow_major_auto_core_updatesと同じ、コアのメジャーバージョンの更新(例:6.7→6.8)を制御しています
    • auto_update_core_minor
      説明:filterのallow_minor_auto_core_updatesと同じ、コアのマイナーバージョンの更新(例:6.7.1→6.7.2)を制御しています
    • auto_update_core_dev
      説明:filterのallow_dev_auto_core_updatesと同じ、開発版の更新を制御しています

WP-CLIでデータベースデータベースの値を確認

//enabledに設定するがないか確認
[root@almalinux9 DocumentRoot]# wp option get auto_update_core_major
disabled

まとめ

「WordPressの自動更新は設定して終わり」ではありません。定期的な健康診断と適切なメンテナンスが、サイトを攻撃から守ります。今日紹介したチェックポイントを元に、自動更新が確実に機能する環境を維持してください。安全なWordPress運用で、安心してサイト運営を続けましょう!

次回は、このロジックを応用してKUSANAGIプラグインでどう制御しているのかをお伝えします!

<< WordPress 6.7のリリースに備え押さえておきたい変更点

関連記事

Webサイト運用の課題解決事例100選 プレゼント

Webサイト運用の課題を弊社プロダクトで解決したお客様にインタビュー取材を行い、100の事例を108ページに及ぶ事例集としてまとめました。

・100事例のWebサイト運用の課題と解決手法、解決後の直接、間接的効果がわかる

・情報通信、 IT、金融、メディア、官公庁、学校などの業種ごとに事例を確認できる

・特集では1社の事例を3ページに渡り背景からシステム構成まで詳解