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

[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

あとがき

管理人

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

りさ

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

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

関連記事

コメント

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