[WordPress] メンバーシップ・サイトを構築プラグイン – Ultimate Member プラグインの使い方をAMP対応とともに解説 – [2021/03/07]

ID14027

はじめに

当サイトは、試験的及び備忘記録として記録した内容は非表示にするために、Ultimate Memberプラグインを試験的に導入しています。

よろしければ、「いたずら」してみて下さい。使い勝手などがわかると思います。どれだけの堅牢性(ロバストネス)があるか知りたいと思っているので、ぜひどうぞ。「ユーザー」> 「新規登録」です.

ロバストネスの確認、及び対策の強化には、以下の2つのプラグインを導入しています。これは、SiteGuard WPは、定番のようなので、極力導入してはいかがでしょうか。

  • Statify
    • どのページがよくアクセスされているか知ることができます
    • この機能を使って、ユーザー登録ページがどれくらいアクセスされたかわかります
    • アクセスされているにもかかわらず、登録実績がなければ、登録の意図はないと判断できます
    • 因みに、Google Analyticsで調べればサイトのアクセス状況はわかると思っていましたが、ユーザーログイン画面など、no-indexにしているものは統計に含まれないので、、Statifyを導入するまで、これらのアクセス状況を知ることができていませんでした。これは、リスキーな状況です
  • SiteGuard WP Plugin
    • Statifyが集積した情報から、ユーザーログイン画面のアクセス数が数百と非常に多かった時期がありました。フロントページにユーザーログイン画面のリンクを貼っているので、そこにハッキングを仕掛けていることが考えられました。
    • そこで、SiteGuard WP Pluginの設定で、「防御」を施しています。
    • また、予備的に登録したものの、自分に届かないメールアドレスを指定した(と考えられる)ため、確認メールが届かず、そこに記載のリンクをクリックして最終的な登録まで行っていない(と考えられる)ため、そのような仮登録者によるユーザーログイン画面でのログインの試行(この状態でログインできない)こともカウントされています

使い勝手は? とヒヤカシ

よく海外からの「ヒヤカシ」があります。ユーザー登録はしていただけるのですが、その登録したe-mailに対して、自動で送られてくるリンク付きのe-mailの処理をしてくれません。

そのリンクをクリックすれば、登録したe-mailは実在すると判断できるし、且つロボットではないことを、おおよそ判断できるので、登録が完了するという仕組みです。

ご自身により登録した後に、登録の削除もできます。

WordPressのユーザー管理画面を見れば、メール一覧から、ステータスが確認できます。もしも、登録しようとしたユーザーが、自動で送られてくるUltimate Memberプラグインからの確認メール、すなわち、そこに記載のリンクをクリックしていない限り、「メールアドレスの確認待ち中」と表示されています。メールの確認が完了すれば、WordPressのユーザーの管理画面には、そのユーザーは「承認済み」と表示されます。以上、これらの挙動は、Ultimate Member -> 設定 -> Emailから設定します。

Ultimate Memberと専用のreCAPTCHAの説明

Ultimate Memberは、AMPページでは、エラー/ワーニングが出てしまいます。念のため、Ultimate Memberを機能させたい投稿/ページは、AMPを適用せず、更に、AMPプラグインの設定で、機能を無効化に設定しています。

Ultimate Member

大まかな機能

Ultimate Memberプラグインは、登録したユーザーに「権限グループ」を設定し、権限グループ毎に、表示/非表示の区分について投稿全体や投稿内のブロック毎(Gutenberg使用の場合)に制限をかけ、ユーザー毎にサービスを差別化するプラグインです。

ユーザー登録して、そのユーザーの設定として例えば「Family」としたとします。次に投稿のブロックまたは、投稿全体に対して、制限(Restrict)のスライドボタンで設定して、Familyを指定すれば、Family設定のユーザーにしか見れないブロックまたは投稿を作成できます。これにより、クローズドなメンバーシップが可能です。

専用のreCAPTCHAの注意点)

Ultimate Member – reCAPTCHAは、WordPress標準のログイン画面に上書きできない、又は、標準ログイン画面を無効化できないため、以下の事例のようにコンフリクトを起こします。

対策の概要

WordPressの標準ログイン画面を使用せず,Ultimate Memberのログインに集約します.且つ,reCAPTCHAも専用のUltimate Member – reCAPTCHを使用することで,セキュリティを保ちます.

このコンフリクト(エラー)は、2020/02現在で調べた限り、2017年から報告されています。

以下、対策方法も記載しているので、Ultimate memberを使う場合、合わせて設定して下さい。

reCAPTHC同士のコンフリクトと対策

  • 「Ultimate Member – reCAPTCHA」は、WordPress標準ログイン画面には適用されないため,標準ログイン画面用に,別のrecaptchaを導入すると、コンフリクトが生じてUltimate MemberでのreCAPTCHが,エラーしてログインできなくなる
    • Ultimate Member専用である
    • WordPress標準のログイン画面に適用されない
    • 複数のreCAPTCHAプラグインの併用はコンフリクトする
  • 対応策 (標準ログイン画面を無効化して対応する)
    • wp-login.phpの削除
      WordPress標準ログイン画面である「wp-login.php」をバックアップを取ってから削除(または、ファイル名の変更:この場合不正アクセス者から類推されないことに注意)し,Ultimate Memberのログイン画面のみの運用とする。
      • 注意) WordPressのアップデート後には、「wp-login.php」が復活します。その対策は、以下に示したように、Redirectプラグインを使います。
      • 説明)「wp-login.php」は、不正アクセスのターゲットになります。ファイル名称を変えるようなプラグインもあるくらいなので,ファイル名変更の対応策も効果があると考えています。
    • URLの無効化
      Redirectプラグインを使って、標準ログイン画面をUltimate Memberのログイン画面にリダイレクトする

標準ログイン画面が必要となった場合

UMのlogin画面ではログインできなくなる

AMP pluginを使用しいて、且つ、ultimate memberのloginページをAMPに適用している場合に、ultimate memberのlogin画面からログインした時、エラーが出て、ログインができない状態に陥ることがあります。AMPページの内容が古かったり、その他の理由があるようです。これを復旧するには、ultimate memberのloginページを、編集画面から更新する必要があります。その際、「AMPの有効化」が有効になっているはずなので、外しておけば、今後の対策になります。

WordPress標準のlogin画面の復旧

以上の作業を行うには、先ずは、WordPressにログインしないといけませんが、WordPress標準のlogin画面を有効(復旧)にする必要です。WordPressのシステムファイルが置かれている「システム」に入って(または、WebDAVなどのファイルの名前が変えられるツールでも良い)、以下のように復旧させます。

  • wp-login.phpを復旧させます。
  • Synology NASにWordPressを載せているので、DSMに Loginします。
  • バックアップを取っている場合は、wp-login.phpを復元,ファイル名を変えている場合は、もとのファイル名に戻します
  • WordPressのwp-content -> pluginsフォルダにある以下のフォルダに「.bak」を末尾に付けてrenameします。
    • redirection -> redirect.bak
    • ultimate-member -> ultimate-member.bak
    • um-recaptcha -> um-recaptcha.bak
  • 以上で、Ultimate-Memberプラグイ関連のlogin画面ではなく、WordPress標準のlogin画面が復活しています。
  • wp-login.phpにアクセスして、Loginできるようになっているはずです。
    • https://your-home-page/wp-login.php
編集履歴
2020/05/14 追記 (RedirectプラグインによるURLの無効化)
2020/10/24 追記 (UMのLogin画面が使用できなくなった場合にWordPress標準のLogin画面を有効にする方法)

人気順