Plug-in "Force Email Login" to restrict Wordpress login to email addresses (disable login with username)

WordPressのログインをメールアドレスに限定する(ユーザー名でのログインを無効にする)プラグイン「Force Email Login」

公開日: セキュリティ
Knowledge Base Wordpress セキュリティ

Wordpressサイトの不正ログイン対策、何かしてますか??何もしてない?とっても危険だと思いますよ!!

サイトが動作しているサーバーへログインされてしまえばもちろんおしまいなお話ではあるのですが、サイトはサイトでできる限りの対策はしておきたいものです。

サーバー乗っ取りを除外して考えられる一番の対策はログイン画面へのアクセスを自身が接続する環境以外拒否すること。これをすればいつもログインする場所へ侵入されない(自宅なら泥棒などが侵入しない)限りログインは不可能になります。

そして次に挙げられるのが、

というプラグインを使って作者の記事一覧のURL末尾に表示される「ユーザー名」を他の文字列に変更すること。これも結構効果的です(経験上これで設定した偽ユーザー名でログインを仕掛けてくる輩がたくさんいました)。これにメールアドレスでのログインを拒否する設定を追加すれば結構堅牢なのではないかと思います。

今回紹介する「Force Email Login」は逆転の発想で、ユーザー名がそのまま作者の記事一覧のURL末尾に表示されてしまうのなら、ユーザー名でのログインを無効にしてしまえばいい!というプラグイン。前述した「Edit Author Slug」プラグインで作者一覧のスラグが変わってしまうことに不都合がある場合には良いと思います。

この紹介記事を最後に編集したときの環境・バージョンなど

プラグインは製作者によって日々更新されていくため、この紹介記事が最新バージョンのものであるとは限りません。参考までにこの記事の最終更新日時点におけるテスト環境、プラグインバージョン、プラグイン導入時の留意点などを記載しておきます。

プラグインを使用(試用)したテスト環境

  • テストサーバー:カラフルボックスWordPressのログインをメールアドレスに限定する(ユーザー名でのログインを無効にする)プラグイン「Force Email Login」
  • WordPressのバージョン:5.3
  • PHPのバージョン:7.3.11
  • テーマ:ha-Basic(オリジナルテーマ)
  • プラグインのバージョン:記事更新時のバージョン 0.6.0/最新バージョン 0.6.0

より最新の情報をお届けするため、↑の記事更新時のバージョンと最新のバージョンが大きく異なる場合には↓↓↓のボタンのクリックにご協力ください(クリックするだけで管理人へ通知が届くようになっています)

この記事を参考にプラグインの導入をする際以下に留意ください

  • テスト環境での動作に基づいた紹介記事ですので、すべての環境で正常に動作するかどうかは不明です
  • 無料版と有料版(Pro版)がある場合、特に記載がなければ無料版の情報のみを紹介しています
  • このページでプラグインを使用する際に必要なショートコードやコードなどは、コピーして使用することができますが、環境によっては記号などが文字化けすることがあります。コピーしたのに動作しない場合は特に「”」「’」などの記号を入力し直してみてください。
  • プラグイン本体の動作不具合や質問などは公式サイトのフォーラムなどで行ってください(ここでは質問にお答えすることはできません)

WordPressでログイン時のエラーメッセージを変更するプラグイン「Hint」

WordPressでメールアドレスによるログインをできないようにするプラグイン「No Login by Email Address」

WordPressのログインや新規登録などのURL変更、ログイン後のリダイレクト先設定などができるプラグイン「Awesome Custom Login URL」


【Force Email Login】プラグインの設定画面や表示の日本語化と翻訳

【Force Email Login】プラグインは設定項目がないため翻訳の必要はありません。

【Force Email Login】プラグインのインストールと設定

インストール方法

インストールはプラグインの新規追加でプラグイン名で検索してインストールするか、ページ先頭の画像をクリックして表示されるWordpressのプラグイン公式配布ページがダウンロードしてからアップロードインストールします。

インストール方法の詳しい解説は

を参照ください

基本的な設定方法や使い方

設定はありませんので、有効化すればすぐに使用できます。

※「Wordpress ログイン メール 限定」などのキーワードでググるとfunctions.phpへコピーして行う方法の紹介記事が多数出てきます。基本的にこのプラグインは同じで

  • 入力されたメールアドレスと合致するユーザー名を探す
  • メールアドレスをユーザー名に置き換えてログイン試行する

という動作をします。どちらの方法でもいいとは思いますが、個人的には機能を有効/無効にするのがfunctions.phpへ直書きするコードよりもプラグインのON/OFFで簡単にできる点で【Force Email Login】をおすすめします。

【Force Email Login】プラグインの便利な使い方・カスタマイズ方法など

より便利に使うカスタマイズ技やテストサイトで使用した結果や感想、Wordpressのプラグイン公式配布ページには書かれていない事柄などを紹介します。

このプラグインを有効化してもログイン画面の文字列はそのままです。不都合が出るのは

  • ユーザー名またはメールアドレス
  • エラー: ユーザー名を入力してください。
  • エラー: そのユーザーネームまたはメールアドレスのアカウントは存在しません。
  • エラー: 無効なユーザー名かメールアドレス、または間違ったパスワードです。

の4つかと思います。これらをそれぞれ以下のように変更するコードを紹介しておきますので、テーマのfunctions.phpへコピペして利用ください。

  • メールアドレス
  • 空欄(何も表示しない)
  • ログインに失敗しました
  • ログインに失敗しました

ご自身の環境に合わせて変更する場合にはコード中の「ログインに失敗しました」などを書き換えればOKです。
※今表示されている文字列を任意のものに変更するためのコードですので、ログイン画面以外の文字列もこのコードに明細追加するだけで変更できるようになって便利なコードです。

/********** ログイン画面の文字列を変更 **********/
function custom_gettext( $translated, $text, $domain ) {
    $custom_translates = array(
        'default' => array(
'ユーザー名またはメールアドレス' => 'メールアドレス',
'<strong>エラー</strong>: ユーザー名を入力してください。' => '',
'<strong>エラー</strong>: そのユーザーネームまたはメールアドレスのアカウントは存在しません。' => 'ログインに失敗しました',
'<strong>エラー</strong>: 無効なユーザー名かメールアドレス、または間違ったパスワードです。' => 'ログインに失敗しました'
)
    );
    if ( isset( $custom_translates[$domain][$translated] ) ) {
        $translated = $custom_translates[$domain][$translated];
    }
    return $translated;
}
add_filter( 'gettext', 'custom_gettext', 10, 3 );
function trans_custom_gettext() {
    $args = func_get_args();
    $translated = $args[0];
    $text = $args[1];
    $domain = array_pop( $args );
    $translated = custom_gettext( $translated, $text, $domain );
    return $translated;
}
add_filter( 'gettext_with_context', 'trans_custom_gettext', 10, 4 );
add_filter( 'ngettext', 'trans_custom_gettext', 10, 5 );
add_filter( 'ngettext_with_context', 'trans_custom_gettext', 10, 6 );
【注意】コードをコピーして使用する前に必ずお読みください

この記事内にコードが記載されている場合、コードはそのままコピー(いわゆるコピペ)してお使いいただいても構いませんが、以下の件にご留意ください。

使用については自己責任でお願いします

コードの確認は私の管理するサイト、またはテスト環境で問題が起こらなかったものですので、お使いの環境での動作等を保証するものではありません。

万が一このコードを使用してサイトに重篤なトラブルが生じても当サイト、当サイト管理者は一切責任を負いません

コードの変換エラーなどにより動作しない場合、更新エラーが出る場合があります

コードをそのままコピーしても問題なく使えるよう文字列変換を行った上で掲載しておりますが、希に変換できていない場合があり、コードエラーとなることがあります

その場合には以下の方法で修正を行ってみてください

  1. コードの中に全角の記号が入っていませんか?
  2. 半角にすることで解消できます
  3. コードの中に全角の空白(スペース)がありませんか?
  4. 半角にすることで解決できます
  5. コードは合っているはずなのに更新できないときは
  6. 特にエラーの出た行内に日本語での文字列が入っている場合には全角での文字列があるということでエラーになる場合があり、Wordpressのエディタチェックではこれを「’」や「)」など閉じ子のエラーとして認識され更新できないことがあります。エラーとして返される行の先頭に空白がある場合には空白をなくすことできちんと認識され更新されるようになることが多いです。
  7. 「何かが間違っています...」と表示され、更新できないときは
  8. このエラーは本当に何がエラーなのかをWordpressのチェックが判断できない場合に発生します。解決策としてはその画面を開き直すことなのですが、その際希に元のコードがすべて削除されてしまう場合がありますので、今表示されているコードを一旦どこかへコピーしてからページの再読み込みをするようにしてやり直します。
    ※このエラーは不明なエラーなので予期せぬ動きをする可能性がありますので特に慎重な対処が必要です
これらのエラー対処については以下のページが参考になるかも知れません

コードを転載する場合には

ご自身のサイトで当ページで紹介しているコードを転載される場合には当ページへのリンクを入れていただきますようお願いいたします

このプラグインの脆弱性に関する情報

プラグインはWordpressで作ったサイトを簡単に充実させることができる魔法の追加機能ですが、それを狙って悪意のあるコードを挿入したり、情報を盗み取ったり、最悪の場合はサイトを壊す、乗っ取るといった行為を行う入り口になってしまう可能性があります(これを脆弱性といいます)。

ここではこのプラグインに関して【WPScan脆弱性データベース】で脆弱性が確認されている情報を紹介します。お使いのプラグインのバージョンに該当する情報がある場合には、対策済みのバージョンへ更新する対策が取られていないようであれば別のプラグインの利用を検討するなどの対応をおすすめします。

脆弱性情報一覧

英語サイトからの取得データのため、一覧は英語表示、リンク先も英語ページとなりますので、英語が苦手という方は、同時翻訳が可能なブラウザを使用して閲覧してください
よく出てくる脆弱性警告と簡単な解説・参考サイト
※個人的な理解や解釈ですので、より詳しい内容についてはご自身でお調べください

Cross-Site Scripting (XSS)

フロントエンドから入力などを行うことができるサイトで、フォームに悪質なコードを仕込み、さまざまな方法でログイン情報などを盗み取る行為。より詳しい情報は以下のサイトを見てください(英語サイトです)

SQL Injection

何かを入力して条件などを設定する機能に対して悪意を持って条件を入力することで改ざんを行ったり、情報を盗み取ったりされる可能性を示す警告のことです。

※※ ここにリンク一覧がない場合、現在このプラグインの脆弱性情報はありません ※※

WPScan脆弱性データベースの概要

以下WPScanに掲載されている概要の引用文です。WPScanの詳細はこちらを参照ください。

WPScanは、非営利目的の無料のブラックボックスWordPress脆弱性スキャナーであり、セキュリティの専門家やブログの管理者がサイトのセキュリティをテストするために作成されています。

WPScan脆弱性データベースを使ったセキュリティスキャンプラグイン

WPScanへの登録(無料)が必要ですが、現在サイトにインストールされているプラグインやテーマに関して他者から攻撃を受ける可能性があるか(安全なものかどうか)を管理画面からチェックできます。

Wordpressの本

Amazonの人気商品楽天市場の人気商品
いちばんやさしいWordPressの教本 第4版 5.x対応 人気講師が教 える本格Webサイトの作り方 (「いちばんやさしい教本」シリーズ) / 石川..

いちばんやさしいWordPressの教本 第4版 5.x対応 人気講師が教 える本格Webサイトの作り方 (「いちばんやさしい教本」シリーズ) / 石川..

1,738 円 (税込)
基本情報ジャンル建築・理工フォーマット本出版社インプレス発売日2019年07月ISBN9784295006664発売国日本サイズ・ページ280p 21×19cm関連キーワード 9784295006664 出荷目安の詳細はこちら>>楽天市場内検索 『在庫あり』表記について 
WordPressセキュリティ大全 [ 吉田哲也 ]

WordPressセキュリティ大全 [ 吉田哲也 ]

2,420 円 (税込) 送料込
吉田哲也 秀和システムワードプレスセキュリティタイゼン ヨシダテツヤ 発行年月:2019年10月18日 予約締切日:2019年06月19日 ページ数:224p サイズ:単行本 ISBN:9784798058900 吉田哲也(ヨシダテツヤ) 有限会社TY Planning代表取締役。webコンサルタント・上級ウェ..
楽天ウェブサービスセンター CS Shop
ひまあーと(管理人)
  • 記事の作者: ひまあーと(管理人)

  • ☆最後までお読みいただきありがとうございました。記事作者のひまあーとです。
    ☆Wordpressでサイトをカスタマイズしていく上で有用な情報を配信しつつ、「ココナラ」でサイトカスタマイズのお手伝い、不具合の修復、サイト引っ越し代行などをさせていただいております。
    ☆Wordpressネタが多いですが、趣味の「園芸」「卓球」などの情報や日々の出来事などもどんどん増やしていきますのでよろしくお願いいたします。


いつでもご相談・サイトカスタマイズの依頼を受け付けています

Wordpressのカスタマイズ、不具合解消のご相談はすべてココナラのダイレクトメッセージからお受けしております。まずはこちらのバナーからお気軽にお問い合わせください。

※一度もココナラを使ったことがない方はココナラへの無料登録が必要です。こちらから登録後、上のリンクをクリックする、またはココナラトップページから「ひまあーと」を検索してお問い合わせください。


【スポンサーリンク】


記事の拡散にご協力をお願いします

閲覧いただきありがとうございました。役に立つ情報でしたら是非SNSでシェアをお願いします

関連情報