WordPressのセキュリティキーは8項目をまとめて変更する
公開日: 執筆:佐藤
WordPressのセキュリティキーを変更するときは、WordPress.orgの公式生成サービスで8項目を作り、wp-config.phpにある同名の設定をまとめて置き換えます。変更後は、それまでの認証Cookieが無効になるため、管理者を含む全利用者が再ログインします。
これは、利用者のパスワードを変更する作業ではありません。既存のログイン状態を失効させる作業です。目的と影響を分けたうえで、編集中の利用者がいない時間に行います。
セキュリティキーとsaltは認証Cookieとnonceの計算に使われる
WordPressの設定例には、Authentication Unique Keys and Saltsとして、次の8項目があります。
| 組 | 設定名 |
|---|---|
| 通常の認証 | AUTH_KEY、AUTH_SALT |
| SSLを使う認証 | SECURE_AUTH_KEY、SECURE_AUTH_SALT |
| ログイン状態 | LOGGED_IN_KEY、LOGGED_IN_SALT |
| 操作要求の確認 | NONCE_KEY、NONCE_SALT |
WordPressの認証処理は、用途ごとにキーとsaltを組み合わせてハッシュを作ります。認証Cookieを受け取ると、同じ設定からハッシュを計算し直し、Cookieに保存された値と照合します。
設定を変えれば、変更前の値で作られた認証Cookieは照合に通りません。wp-config-sample.phpも、キーとsaltはいつでも変更でき、変更すると既存のCookieが無効になり、全利用者が再ログインすると説明しています。
NONCE_KEYとNONCE_SALTは、管理画面などで操作要求を確認するnonceの計算に使われます。変更前に開いた画面のnonceは、変更後の計算結果と一致しません。送信前の編集内容を保存し、キーを変更したあとは管理画面を読み込み直します。
公式生成サービスの8行で既存の設定を置き換える
値は自分で短い言葉を考えず、WordPress.org secret-key serviceで生成します。このURLは、WordPress 3.5.1のwp-config-sample.phpにも記載されています。アクセスすると、8項目を定義する行が一組で表示されます。
変更前に、現在のwp-config.phpを第三者が閲覧できない場所へ複製します。次に、ファイル内のAUTH_KEYからNONCE_SALTまでの8行を探し、生成された8行と置き換えます。古い行を残したまま、別の場所へ同名の設定を追加しません。
生成された値は、パスワードと同じように扱います。記事、作業報告、画面写真、問い合わせ文へ貼り付ける必要はありません。ファイルを第三者へ渡す場合も、wp-config.phpを含める必要があるかを先に確認します。
変更前に再ログインできる状態を確保する
キーの変更後は、現在ログインしている管理者もログアウトします。変更作業を始める前に、管理者の利用者名とパスワードでログインできることを確認してください。パスワードをブラウザのCookieだけに頼っている状態で変更すると、再ログインできない問題が別に発生します。
複数人で更新しているサイトでは、編集中の投稿を保存してもらい、再ログインが必要になる時刻を伝えます。通販や会員向けの機能を追加している場合は、WordPressのログインCookieを利用する範囲を制作者へ確認します。キーの変更が、管理画面だけに影響するとは限りません。
変更後は、サイトの表示、管理画面へのログイン、投稿の保存を順に確認します。以前から開いていた管理画面は読み込み直し、新しいnonceで操作します。確認が終わるまで、置き換え前のwp-config.phpは公開領域の外へ保管します。
キーの変更と侵害原因の除去は分けて考える
セキュリティキーを変更すれば、変更前の値で作られた認証Cookieは使えなくなります。しかし、改ざんされたファイル、追加された利用者、漏れたパスワード、サーバーの設定不備は、それだけでは直りません。
不正利用が疑われる場合は、キーの変更を対処の完了にしないでください。WordPress本体、プラグイン、テーマ、利用者、パスワード、ファイル、データベース、サーバーの記録を別々に確認します。何が起きたかを確かめる前に記録を消すと、侵入経路を追えなくなることがあります。
まず、wp-config.phpに8項目が一組で設定されているかを確認します。変更するなら、全利用者が再ログインできることを確かめ、編集中の内容を保存してもらってから、作業時間を決めてください。
関連記事

