2

セキュリティ上の理由から、ユーザーがhttp://www.mysite.com/wp-login.phpまたはhttp: //www.mysite.com/wp-adminエラー 404 ページにリダイレクトされますが、http ://www.mysite.com/blah-loginまたはhttp://www.mysite.com/blah-adminと入力すると、私のWP管理者またはログインパネルにリダイレクトされました。それを行うには、次のオプションがあります。

  1. 苦手な .htaccess ファイルを書き直し、サイトの .htaccess ファイルを台無しにしたくありません。
  2. 小さなプラグインを作成して $wp_rewrite クラスを使用します。そのコードを以下に示します。

    register_activation_hook( __FILE__, 'activate' );
    function activate() {
        rewrite();
        flush_rewrite_rules();
    }
    register_deactivation_hook( __FILE__, 'deactivate' );
    function deactivate() {
        flush_rewrite_rules();
    }
    add_action( 'init', 'rewrite' );
    function rewrite() {
        add_rewrite_rule( 'blah-admin/?$', 'wp-admin', 'top' );
        add_rewrite_rule( 'blah-login/?$', 'wp-login.php', 'top' );
        add_rewrite_rule( 'blah-register/?$', 'wp-register.php', 'top' );
    }
    

    wp-admin、wp-login.php、または wp-registe.php (必須) へのアクセスを制限しないという問題のみが完全に機能します。

  3. 次のルールを新しい .htaccess ファイルに書き込むことができます。

    AuthUserFile /dev/null
    AuthGroupFile /dev/null
    AuthName "Wordpress Admin Access Control"
    AuthType Basic
    
    <LIMIT GET>
      order deny,allow
      deny from all
      allow from xxx.xxx.xxx.xxx
    </LIMIT>
    

    wp-admin フォルダーの下に配置すると、2 つの欠点がありますallow from xxx.xxx.xxx.xxx。私のため。

  4. 2 番目と 3 番目のルールを組み合わせて使用​​することもできますが、ブロックされたフォルダー全体への代替パーマリンクを提供できないため、確実に機能しません。

  5. 最後の手段として、wp-modal プラグインのパーマリンク書き換え機能を使用できます。これは魅力的に機能しますが、このプラグインは私のテーマと互換性がありません。

それで、私の問題に対する解決策は本当にありますか?

4

2 に答える 2

0

ブルートフォース攻撃から身を守ろうとしていると思いますか?許可されるログイン試行の頻度を制限しないのはなぜですか? IPごとに追跡し、Cookieの使用を追跡する「Limit Login Attempts」と呼ばれるかなり堅実なプラグインがあります.

ここで確認してください: http://wordpress.org/plugins/limit-login-attempts/

ただし、ログイン ページをマスクしようとするのは興味深いアイデアです。どこかに独自のログイン ページを作成し、作成したカスタム ログイン スクリプトと対話させることができます。これにより、コア機能をいじることなく、ログイン ページを 404 ページに 301 リダイレクトできます。

次のようなフォームを作成し、メソッドを使用するカスタム ハンドラーにhttps://yourwpsite.com/supersecretloginフォームを作成することができます。wp-admin を使用せずにログインする方法の例を次に示します。POSTwp_signon

$creds = array();
$creds['user_login'] = $_POST['user'];
$creds['user_password'] = $_POST['password'];
$creds['remember'] = true;
$user = wp_signon( $creds, false );
if ( is_wp_error($user) )
   exit($user->get_error_message());
header('Location: https://yourwpsite.com/wp-admin');

http://codex.wordpress.org/Function_Reference/wp_signon

それが役立つことを願っています!

于 2013-08-20T00:45:30.443 に答える