3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Wp-adminを隠したがWp-Membersのフォームから管理者ログインできるから意味ないじゃん対策

Last updated at Posted at 2020-06-09

#本投稿について
Wordpressのセキュリティ対策として有名なのが、ログインページ(/wp-admin)を隠して、総当たり攻撃などによる管理者権限での不正ログインを防ぐことですが、会員制サイトを作成するためにプラグイン『Wp-Members』を使用してログインフォームを設置すると、そこからログインできてしまいます。
そこで、なんとか『Wp-Members』のログインフォームから管理者権限でログインできないようにしたときのメモです。

#先に結論

function.phpに以下のコードを書きました。

function.php
add_filter( 'wpmem_login_redirect', 'my_login_redirect', 10, 2 );
function my_login_redirect( $redirect_to, $user_id ) {
	
	if(user_can( $user_id, 'administrator' )){
		wp_logout();
	}
    return home_url( '/' );
}

#解説
Wp-Membersのフックには、ログイン直後の明示的なフックはありません。(ここで困った:frowning2:
但し、ログイン後のリダイレクト先を指定するフックとして、ユーザーIDを引数にもつ『wpmem_login_redirect』がありましたので、これを利用できないかと考えました。
この例では、ユーザーIDが管理者権限を持つか、wordpressの標準関数user_canで判定し、そうであるならば、wp_logoutで強制ログアウトさせます。

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?