[WordPress]ログインページの表示/非アクセス遮断する

Last Updated: 2023 年 07 月 17 日 17のコメント

WPS Hide Login  -  WordPress ログインページを非表示に

概要

セキュリティを強化するために、ログインページのパスを変更することができます。 または、 WordPress サイトで一般の人々のログイン機能を無効にさせて、一般のユーザーがwp-login.phpページにアクセスできないようにしたい場合があります。 この記事では、この二つの状況に使用できる方法を説明します。

アップデート: 初期のセキュリティプラグインには、 WordPress ログインページを隠す機能が含まれていましたが、このような「不明であることを通じたセキュリティ(Security through Obscurity、隠遁セキュリティ)」方式は、実質的な保護を提供せず、むしろシステムを不安定にしてテーマが割れることがあるとします。

(ただし、管理者のみログインできるようにwp-adminページにアクセスする方法は、まともなようです。)

ログインページを非表示に

WordPressで、ログインページのアドレスを変更して、ハッキング攻撃などを遮断しようとする場合、プラグインを使用することができます。 いくつかのプラグインがありますが、 WPS非ログインというプラグインが比較的アップデートもよくされて、何よりも軽い(メーカーによると)ようです。

WordPressの管理者ページで プラグイン>プラグインを追加するでWPS Hide Loginを検索してインストールして有効にします。 次に 設定>一般に移動した後の一番下に見ると、ログインページの新しいパスを指定できるフィールドが追加されています。

WPS Hide Login  -  WordPress ログインページを非表示に

基本的には http://www.example.com/loginログインページが設定されています。 必要に応じてパスを変更できます。 今 http://www.example.com/wp-login.phpに接続するとないページ(404エラー)に表示されます。

wp-login.phpにアクセスできないように設定する

一般の人がログインページにアクセスできないようにwp-login.phpページ自体へのアクセスをブロックすることができます。 この場合は、次のようなコードを.htaccessファイルに追加するようにします。

<Files wp-login.php>
Order Deny,Allow
Deny from All
Allow from xxx.xxx.xx.xxx
</Files>

その後、IPがxxx.xxx.xx.xxxのユーザーのみログインページへのアクセスが可能です。 マイコンピュータのグローバルIP確認は https://www.whatismyip.com/で確認が可能です。 上記のコードを.htaccessに追加すると、一般ユーザーがwp-login.phpページにアクセスすると、「403 Permission Denied」というメッセージが表示されます。

wp-login.phpリダイレクトさせる

別の方法としてwp-login.phpファイルにアクセスする訪問者を別のページ(例えば、ホームページ)に移動させる方法を考えてみることができます。

add_action('init','custom_login');

function custom_login(){
global $pagenow;
if( 'wp-login.php' == $pagenow ) {
wp_redirect('http://www.example.com/'); // 리디렉션시키려는 URL로 변경
exit();
}
}

この場合、管理者もwp-login.phpへのアクセスができない問題が発生します。 これを防止するために、管理者のインターネット回線のIPアドレスではない場合(IPアドレスでアクセス制限の設定)のみ、上記の関数が実行されるようにすることができます。 この場合には、次のようなコードを追加すると、なりそうです。

if ($_SERVER['REMOTE_ADDR'] !== 'xxx.xxx.xx.xxx') // 관리자 IP 주소
{
// 코드
}

メモ:


17のコメント

コメント

  1. 特定のアイピーだけに近づくようにブロックすれば、管理者本人も指定された場所のコンピュータ以外にはカフェで、あるいは旅行中には管理をする方法がないでしょう。 セキュリティは徹底したいのですが、場所にこだわらず管理が容易であれば良い方法があるのか​​気になります。

    応答
    • こんにちは、ジェイ様。 外部から管理者ページに接続しなければならない場合が多い場合は、ipアドレスで管理者ページへの接続をブロックするコードを削除するのが良いと思います。 他の方法でFTPに接続して頻繁に訪れるカフェのIPアドレスを追加で入力したり、あるいは旅行先に行って接続するIPアドレスをFTPに接続して追加することも可能です。

      応答
  2. こんにちはワード様! いつもブログの記事をよく見ています。 良い記事を書いてくれてありがとう。 相違ではなく、一つの質問があります。

    「wp-login.phpにアクセスできないように設定する」

    上記の項目でnginxにサーバーが設定されている場合、どのように同じ効果を見ることができるか疑問に思います。 nginxでは、.htaccessファイルを変更しても機能しないようです。

    良い投稿いつもありがとうございます。

    応答
  3. よい内容をお知らせいただきありがとうございます。
    ワードクラッカー様のおかげで、いつものログインウィンドウのないミドウムがあったが、解決しました。

    リダイレクトは試してみようとしたが、よく初心者あきらめた。
    それでも、特定のipのみアクセスできるように設定して、心がいっそう楽になりました。 ^^
    本当にありがとうございます。

    応答
    • こんにちは、ヤルリ様。

      ログインページのアドレスを変更して、隠すことは、セキュリティにあまり役に立たないされて、むしろシステムが不安定になることができるということが、最近の見解です。
      ぜひログインページのアドレスを変更したい場合Theme■ Security などのセキュリティプラグインが提供する機能を使用できます。 次の記事の「Hide Backend」部分を参照してください。

      https://www.thewordcracker.com/basic/ithemes-security-%ED%94%8C%EB%9F%AC%EA%B7%B8%EC%9D%B8-%EA%B3%A0%EA%B8%89-%EA%B8%B0%EB%8A%A5/

      応答
      • お知らせいただいた方法で

        注文拒否、許可
        すべてから拒否する
        Allow from xxx.xxx.xx.xxx

        ログインウィンドウにアクセスできないようにしました。 テーマの更新はできません。 更新部分は解決する方法があるかどうか疑問に思います。 既存の.htaccessにコードを挿入したのは見えませんでした。 消そうとしたら…解決する方法はありますか?

      • 上記のコードは、テーマの更新とは何の関係もないでしょう。

        私も似たようなコードを挿入したが、テーマの更新やプラグインの更新に問題がありません。
        おそらく他の問題があることができます。

        .htaccessファイルがないということは固有のアドレスの問題ですね。

        設定>固有のアドレスで「デフォルト」以外のオプション(例:文章)で選択してください。
        WordPressでは、固有アドレスを「デフォルト」に設定すると問題が発生する場合があります。 なるべく「基本」に設定しないでください。

      • 参考までに、海外ホスティングの一つである SiteGround (SiteGround)は、上記の特定のIPアドレスのみを許可するためのコードを.htaccessファイルに追加すると、奇妙なエラーが発生することがあるので、 SiteGroundは、上記のコードを使用してい飲まください。

  4. 私 SiteGroundを使用中なのに SiteGround cpanelのredirects(301)を利用してwp-login.phpをメインページにリダイレクトさせることも可能でしょうか? プラグインのインストールよりも、この方法が簡単に示しからです。

    応答
  5. こんにちは ^^ 気になる部分があり、こうコメントするようになりました。今現在、このウェブページも"https://www.thewordcracker.com" '/wp-admin' や '/wp-login.php' をするとアクセス拒否になりますが、このページにはどのような方法を適用されたのかよろしいですか? ?敏感なセキュリティ問題なので、もし決礼になれば答えてくれなくても大丈夫です。 :)良い情報をありがとう!

    応答