ユーザー名のログインを禁止する方法

[WordPress] ユーザー名のログインを禁止する方法

※ 当サイトは広告を含みます。

WordPressにはユーザー名またはメールアドレスでログインできます。

ですが、ユーザー名は簡単に推測することができ、セキュリティとしては微妙です。
そこでユーザー名のログインを禁止して、メールアドレスのみに改造しましょう。

◆ 安全にfunctions.phpをカスタマイズする方法
functions.phpの修正に不安がある人は以下を参考にしてください。

コードを追加する

functions.phpとかに以下のコードを追加します。


// ユーザー名のログインを禁止
add_filter('authenticate', function ($user, $username, $password) {
  $user_data = get_user_by('email', $username);

  if (!empty($user_data)) {
    return wp_authenticate_username_password(null, $user_data->user_login, $password);
  }

  return wp_authenticate_username_password(null, '___', $password);
}, 20, 3);

仕組み

入力された情報をメールアドレスとしてget_user_byで検索します。

ユーザー情報が存在すれば普通にログイン処理、見つからない場合は適当なユーザー名でログイン処理をします。
適当なメールアドレスの場合、結果的にログインは成功しないので、ユーザー名のログインは不可能になります。

参考サイトhttps://wemo.tech/1915

あとがき

管理人
管理人

セキュリティを考えたらユーザー名のログインは不要では?

りさ
りさ

ユーザー名が表示されてるサイトは無効化したほうが安全だよ。

この記事は参考になりましたか?

関連記事

コメント

この記事へのコメントはありません。