2026年8月11日
2026年8月11日
WordPressの「ログインしたままにする」機能の仕組みと無効化
はじめに
WordPressの「ログインしたままにする」機能は、ユーザーがサイトを閲覧する際に何度もログイン画面に戻る手間を省くための便利な機能です。しかし、この機能は特定の条件下ではセキュリティ上のリスクを伴う場合があります。
症状・背景
このテーマが必要になる主な場面:
- セキュリティポリシーにより、すべてのユーザーが毎回ログインする必要がある環境
- ローカルネットワーク内でのみ使用されるWordPressサイトで、外部からの不正アクセスを防ぐため
- 公開されたWordPressサイトにおいて、特定の管理者アカウントに対してセキュリティリスクを減らす
手順・設定方法
ステップ1: フィルター関数を使用して有効化・無効化を制御する
# WordPressの「ログインしたままにする」機能を無効にします。
add_filter( 'remember_me_checked', '__return_false' );
ステップ2: プラグインまたはテーマのfunctions.phpファイルで設定変更
# サイト全体に対して「ログインしたままにする」チェックボックスを非表示にします。
function disable_remember_me_option() {
remove_action( 'wp_login', 'set_auth_cookie' );
}
add_action( 'wp_loaded', 'disable_remember_me_option' );
# ログインページの特定の部分から「ログインしたままにする」オプションを削除します。
remove_action( 'login_footer', 'wc_admin_login_footer' );
ステップ3: カスタムセッション制御を使用して応用
# システム全体でセッションタイムアウト時間を短く設定します。
ini_set('session.gc_maxlifetime', 1800);
# WordPressのログインセッションを手動で制御します。
add_filter( 'auth_cookie_expiration', function() { return 3600; } );
# 管理者ユーザーに対してのみ「ログインしたままにする」機能を無効にします。
function disable_remember_me_for_admins($remember) {
if ( current_user_can('administrator') ) {
$remember = false;
}
return $remember;
}
add_filter( 'auth_cookie_expiration', 'disable_remember_me_for_admins' );
ステップ4: 定期的なセキュリティチェックと更新
# セキュリティの観点から定期的にWordPressとプラグインをアップデートします。
wp core update --minor
wp plugin update --all
注意事項
- セッション管理: ユーザーがログアウトしない限り無期限で認証情報を保持するため、セッション管理は慎重に行う必要がある。
- セキュリティポリシーの遵守: 組織またはプロジェクトのセキュリティポリシーを確認し、それに基づいて「ログインしたままにする」機能を使用すべきかどうか決定する。
- パフォーマンス監視: セッションタイムアウト時間を短く設定すると、ユーザーの利便性が低下する可能性があるため、適切なバランスを見つけることが重要である。
- テスト環境での確認: 重要な変更を適用する前に、テスト環境で詳細にチェックを行う。
まとめ
1. セキュリティ優先: 「ログインしたままにする」機能は便利ですが、セキュリティ上のリスクも伴います。適切なポリシーに基づいて使用しましょう。
2. カスタマイズを上手く利用: PHPのフィルター関数やfunctions.phpファイルを使用して、サイト固有の要件に合わせて設定を調整することができます。
3. 定期的な更新と監視: WordPress自体および使用するプラグインは常に最新の状態にしておくことが重要です。
4. ユーザー教育: サイト管理者に対して適切なセキュリティ習慣を教えることも大切です。
関連記事: