WordPress ログインセッションの維持と強制ログアウト

Last Updated: 2024 年 09 月 06 日 댓글

WordPressにログインすると、一定時間ログインが維持されます。ただし、ログイン後すぐにログアウトしてもログインが維持されないという問題が発生することがあります。

この記事では、ログインセッションの有効期限を設定する方法と、ログインしたユーザーを強制的にログアウトする方法について説明します。

特にサイトがハッキングされたと思われる場合は、すべてのユーザーをログアウトし、管理者パスワードを変更するなどの措置が必要になることがあります。

WordPress ログインが維持されない場合

数ヶ月前に GNUBOARD 掲示板を WordPress 掲示板に移転する作業に関わったことがあります。奇妙にログインするとすぐにログアウトする現象が発生しました。

この場合、wp-config.phpファイルに次のコードを追加すると、ログインセッションの有効期限を設定できます。

define('AUTH_COOKIE_EXPIRY', 86400); // 1 day
define('LOGGED_IN_COOKIE_EXPIRY', 86400); // 1 day

上記のコードを追加すると、セッションの有効期限は1日に設定されます。セキュリティのために1時間以内に設定することを検討してください。

別の方法では、auth_cookie_expiration フィルタを使用して、より細かく有効期限を設定できます。

add_filter('auth_cookie_expiration', function($expiration, $user_id, $remember) {
    if ($remember) {
        // "Remember me" 사용 시 1주일 동안 유지
        return 7 * 24 * 60 * 60; // 1주일 (초 단위)
    } else {
        // "Remember me"를 사용하지 않을 때 1일 동안 유지
        return 24 * 60 * 60; // 1일 (초 단위)
    }
}, 10, 3);

上記のコードをテーマの関数ファイルに追加します(チャイルドテーマを作る作業)。

上記のコードを使用すると、ユーザーがログインしたときに「覚えておく」チェックボックスをチェックすると、ログインセッションは1週間保持されます。

AUTH_COOKIE_EXPIRYはデフォルトのグローバル設定であり、 auth_cookie_expirationは、より細かく有効期限を制御するために使用できます。

強制的にすべてのユーザーをログアウトする

サイトがハッキングされたと思われる場合、またはセキュリティ上の理由でユーザーに再ログインする必要がある場合 WordPressですべてのユーザーを強制的にログアウトする必要があります。

WordPressには強制的にすべてのユーザーをログアウトする機能はありませんが、いくつかの方法で可能です。

WordPress ソルト値を変更して強制的にログアウトする方法

wp-config.phpファイルには認証キーとソルトが入力されています。この認証キーとソルト値を変更すると、ログインしているすべてのユーザーが強制的にログアウトされ、ログインするにはユーザーがユーザー名とパスワードを再入力する必要があります。

特に、サイトがハッキングされたと思われる場合は、ソルト値を変更し、管理者パスワードを変更するアクションを取ることが重要です。

シークレットキーをリセットするには、FTPに接続する必要があります。 FTPに接続してwp-config.phpファイルを開くようにします。 FileZillaを使用している場合は、下図のようにwp-config.phpファイルを選択して右マウスボタンを押してから、 表示/編集を押します。

認証キーが入力された部分に移動します。通常は、次のような同様の形式で認証キーの値が入力されています。

define('AUTH_KEY',         '3_Y2Zwb_wS,|+622m(lU8,RJ+O74% %&_`*$[fbV@Wn[;0J9:H*_tGh{7tD-@+Yb');
define('SECURE_AUTH_KEY',  'v|F(4Qd5-w-5b^qS}SCKnB)tt6;,j)g-ibxZHR|>fOf`8YWONK)yeEP&$li#y6BS');
define('LOGGED_IN_KEY',    '[rrYU-5uHYMnKul<,l4_Xe9N+>4bTzVQx|3Xo=2Hl~z0T4|<8p1]b0}1iUQ`OqYU');
define('NONCE_KEY',        'c-|A7/~1@O)dye}NiymJ8jqHxjO]Ex-I8pn_0#@q!:_iqweX-7F,ZZi{#84vylSe');
define('AUTH_SALT',        ']`(`$g@/ssK9`mZy;#uG=AK~1fS|M+Km2`Ou_VbhG&*/A|D9/D^tPPvD1{S]A#Un');
define('SECURE_AUTH_SALT', 'H`3ce7v94bpXhZ9=CWr_7O|G7>CSX/SK3nmto5)rf<6dF=S@hb:-}lgqNQCh(|D[');
define('LOGGED_IN_SALT',   '=X.P/xr|G 8_K{Lze(D<ovcJm<e|0|r2PC@lv>%i-}EN}pK>|3()Wu5&-?;c=0|g');
define('NONCE_SALT',       'D[ni;joGG+USGKh8A .Jf5{bU1~-wy(IfzR[!iBMW$Jl]B&_r-6-zIh!fYf/vCI-');

しかし、たまに下図のように認証キーが入力されず、「put your unique phrase here」が表示される場合を目撃します。認証キーとソルトを入力しないとセキュリティに問題があるため、秘密鍵を生成して置き換える必要があります。

さらに、セキュリティのために、定期的に認証キー値を新しく作成して置き換えることをお勧めします。上の図では ソルトキー生成リンクをクリックすると、認証キーとソルトが自動的に生成されます。これらの値はランダムで、リンクをクリックするたびに、またはページを更新するたびに変わります。

新しく生成された認証キーとソルト値をコピーして、wp-config.phpファイル内に追加された既存のキー値を置き換えます。

wp-config.phpファイルに認証キーがない場合

クラウドウェイズから WordPressをインストールすると、wp-config.phpファイルに認証キーがないため、慌てることがあります。

クラウドウェイズは、認証キーとソルト入力部分をwp-salt.phpファイルに分割しました。

クラウドウェイズを使用する場合は、wp-salt.phpファイルで同じ方法で認証キーを交換してください。

WPForce Logoutプラグインを使用してすべてのユーザーまたは特定のユーザーをログアウトする

WPForce Logout管理者にワンクリックですべてのユーザーまたは特定のユーザーをログアウトさせることで、セキュリティを強化します。このプラグインを使用すると、強制的にログアウトして無差別代入攻撃から保護し、問題のあるアカウント(ハッキングされたアカウントなど)を管理するのに役立ちます。

機能

  • すべてのユーザー強制ログアウト操作
  • 特定のユーザー(複数可)のログアウト
  • 一括でユーザーをログアウトする
  • オンラインユーザーを見る
  • 最後のログインアクティビティの追跡
  • マニュアルがよくされている
  • 翻訳可能

拡張機能

  • アイドルユーザーログアウト(非アクティブユーザーログアウト)
  • ブラウザを閉じると自動ログアウト
  • セッションの有効期限
  • ログアウトリダイレクト

以下はプラグイン紹介サイトに掲載されたスクリーンショットです。

国内の一部のサイトにログインすると、特に銀行サイトやカード会社サイトの場合、セキュリティのため一定時間活動がなければ強制的にログアウトすることもあります。このような機能が必要な場合 非アクティブなログアウトというプラグインを使うことも可能です。

参照


コメントを残す

コメント