導入
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_coreをFalseに設定すると、下の三つの設定は無効になります。つまり、これらの設定はすべて上書きされ、効果を持たなくなります。
- 設定例:
テーマとプラグインなどの中にこのフィルターがないか確認
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プラグインでどう制御しているのかをお伝えします!