2026年7月12日
2026年7月12日
WordPressの管理者パスワードを強化する方法|長さ・2段階認証・WP-CLIでの再設定
WordPress の管理者アカウントは、乗っ取られるとサイトのすべてを書き換えられます。ログイン画面への総当たり攻撃や、ほかのサービスから漏れたパスワードを試す攻撃は日常的に来るため、管理者のパスワードは長く、使い回さないものにし、パスワードだけに頼らない設定を加えます。この記事の内容は2026年10月時点の WordPress 6.8 以降を前提にしています。
強いパスワードの考え方
米国国立標準技術研究所(NIST)が2025年に改訂した認証のガイドライン SP 800-63B-4 では、パスワードについて次のような考え方を示しています。
- パスワードだけでログインする場合は 15文字以上(2段階認証と組み合わせる場合は8文字以上)
- 「大文字・数字・記号をそれぞれ1文字以上入れる」といった文字種のルールは課さない
- 定期的な変更は求めない。漏れた疑いがあるときに変える
- よく使われるパスワードや、漏えいしたことが分かっているパスワードは拒否する
- パスワード管理ソフトと貼り付けを使えるようにする
実際の運用では、パスワード管理ソフトで20文字前後のランダムなパスワードを作り、ほかのサービスと使い回さないのが簡単です。覚える必要があるなら、無関係な単語を4〜5個つなげた長いパスフレーズにします。
手順1:管理画面でパスワードを変える
- 「ユーザー」→「プロフィール」を開く
- 「アカウント管理」の「新しいパスワードを設定」を押す。ランダムなパスワードが入力欄に表示される
- 表示されたものを使うか、パスワード管理ソフトで作ったものに置き換える。入力欄の下に強度が表示されるので、「強力」になっていることを確かめる
- 「プロフィールを更新」を押す
強度が弱いパスワードにすると、弱いパスワードの使用を確認するチェックボックスが表示され、チェックしないと保存できません。ここにチェックを入れて弱いパスワードを使うことは避けます。
手順2:WP-CLIでパスワードを変える
管理画面に入れない場合や、複数の管理者をまとめて変える場合は WP-CLI を使います。
# 管理者の一覧を確認する
wp user list --role=administrator --fields=ID,user_login,user_email
# パスワードを対話で入力して変える(コマンド履歴にパスワードが残らない)
wp user update admin_user --prompt=user_pass
# ランダムなパスワードに変え、メールを送らずに画面に表示する(WP-CLI 2.8.0 以降)
wp user reset-password admin_user --skip-email --show-password
# 管理者全員のパスワードをランダムに変え、本人にメールで知らせる
wp user reset-password $(wp user list --role=administrator --format=ids)
wp user update admin_user --user_pass=新しいパスワード のように直接書くと、シェルの履歴にパスワードが残ります。--prompt=user_pass で入力するほうが安全です。
手順3:管理者アカウントを見直す
- 使っていない管理者アカウントは削除する。記事を書いていた人なら、削除するときに投稿をほかのユーザーに移す
- 記事を書くだけの人は「編集者」や「投稿者」の権限にし、管理者を必要な人数に絞る
- ユーザー名
adminは攻撃で最初に試されます。WordPress ではユーザー名を変えられないため、新しい管理者を作ってから古いアカウントを削除します
wp user create newadmin you@example.com --role=administrator --prompt=user_pass
# 古い admin(ID 1 の例)を削除し、投稿を newadmin(ID 5 の例)に移す
wp user delete 1 --reassign=5
ユーザー名は、投稿者のアーカイブページなどから外部に知られることがあります。ユーザー名を隠すことより、パスワードと2段階認証で守ることを優先します。
手順4:2段階認証を設定する
パスワードが漏れても、2つめの要素が無ければログインされないようにします。WordPress 本体には2段階認証の機能が無いため、プラグインを使います。wordpress.org で配布されている Two-Factor プラグインは、WordPress の貢献者が開発しているもので、有効にすると「プロフィール」画面に設定欄が加わり、認証アプリ(TOTP)やメール、バックアップコードを選べます。
設定と、管理者に必須にする方法は次の記事で説明しています。
手順5:ログイン試行を制限する
WordPress は初期設定では、ログインの失敗を何度でも受け付けます。プラグインやサーバー側の設定で、失敗が続いた接続元を一定時間ブロックします。
ログイン画面のURLを変えるプラグイン(WPS Hide Login など)は、機械的な攻撃の量を減らせますが、パスワードの強さの代わりにはなりません。なお、wp-config.php に WP_LOGIN_URL という定数を書いてログインURLを変える方法は、WordPress には存在しません。
手順6:アプリケーションパスワードとログイン状態を整理する
「ユーザー」→「プロフィール」の下のほうにある「アプリケーションパスワード」には、外部のアプリや REST API 用に発行したパスワードが並んでいます。これは通常のパスワードを変えても無効にならないため、使っていないものは取り消します。詳しくはWordPress のアプリケーションパスワードとはを参照してください。
パスワードが漏れた疑いがある場合は、パスワードを変えたうえで、wp-config.php の認証用キーとソルトを作り直し、すべてのログイン状態を無効にします。
wp config shuffle-salts
wp-config.phpのキーとソルトの役割
wp-config.php の AUTH_KEY や LOGGED_IN_KEY などの認証用キーとソルトは、ログイン状態を保つ Cookie などの署名に使われます。パスワードの保存方式を強くする設定ではありません。キーを変えるとログイン中のユーザーが全員ログアウトされますが、パスワードそのものは変わりません。
パスワードの保存方式は、WordPress 6.8 から bcrypt が既定になりました。6.7 以前に保存されたパスワードは、そのユーザーが次にログインしたときに bcrypt で保存し直されます。プラグインなどで独自の方式に変えていなければ、利用者が設定することはありません。
まとめ
- 管理者のパスワードは、パスワード管理ソフトで作った長いランダムなものにし、使い回さない
- 定期的な変更より、漏れた疑いがあるときにすぐ変えることを重視する
- 変更は「プロフィール」の「新しいパスワードを設定」か、
wp user update --prompt=user_passで行う - 管理者を必要な人数に絞り、2段階認証とログイン試行の制限を加える
- 認証用キーとソルトは Cookie 用で、パスワードの保存方式とは別のもの