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:管理画面でパスワードを変える

  1. 「ユーザー」→「プロフィール」を開く
  2. 「アカウント管理」の「新しいパスワードを設定」を押す。ランダムなパスワードが入力欄に表示される
  3. 表示されたものを使うか、パスワード管理ソフトで作ったものに置き換える。入力欄の下に強度が表示されるので、「強力」になっていることを確かめる
  4. 「プロフィールを更新」を押す

強度が弱いパスワードにすると、弱いパスワードの使用を確認するチェックボックスが表示され、チェックしないと保存できません。ここにチェックを入れて弱いパスワードを使うことは避けます。

手順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 用で、パスワードの保存方式とは別のもの

お気軽にご相談ください

お見積りへ お問い合わせへ
▲