この記事でも書きましたが、WordPressはインストールしたままでは、ユーザーIDが簡単にバレてしまうので非常に危険です。
WordPressのセキュリティ対策「Edit Author Slug」でユーザーID(ログインID)を隠す方法
無料で使えてしかも簡単に導入できるとあって何かと便利なWordPressですが、たくさんの人が使っている分、悪意のある方かたの攻撃対象になってしまうということが非常に多くなっていきています。 ですので、本体、プラグインともに更新プログラムを...
ブラウザの検索で「あなたのURL/?author=1」と検索して、「https://abc/author/あなたのID」という具合にIDが表示されていれば、ログインIDがバレていることになるという説明の続きね。
プラグインはお手軽でとても良いのですが、脆弱性が見つかった場合にそこから攻撃されるというデメリットも存在します。
あと、重くなるというのもデメリット。
という訳で、今回はプラグインを使わずにfunctions.phpに数行コードを書き足すだけで、ユーザーIDを隠す方法についてのメモです。
functions.phpはとても重要なファイルなので、何かあったときのために必ずバックアップを取っておきましょう。
また、基本中の基本ですが、WordPressを編集するときには、必ず「子テーマ」で編集するクセを付けましょう。
functions.phpに書くコード例
トップページにリダイレクトする場合
まずは、「あなたのURL/?author=1」と検索したらトップページにリダイレクトするためのコードです。
functions.phpの「<?php」の後ろにコピペしてFTPクライアントソフトなどで上書きします。
//TOPにリダイレクト
add_filter( 'author_rewrite_rules', '__return_empty_array' );
function no_author(){
if($_GET['author'] || strpos($_SERVER['REQUEST_URI'], '/author/') !== false){
wp_safe_redirect(home_url());
exit;
}
}
add_action('init', 'no_author');
これだけでOK。
404.phpにリダイレクトする場合
「あなたのURL/?author=1」と検索したら404.phpにリダイレクトするためのコードです。
functions.phpの「<?php」の後ろにコピペしてFTPクライアントソフトなどで上書きします。
//404 に飛ばす
add_filter( 'author_rewrite_rules', '__return_empty_array' );
function no_author(){
if($_GET['author'] || strpos($_SERVER['REQUEST_URI'], '/author/') !== false){
wp_safe_redirect( home_url( '/404.php' ) );
exit;
}
}
add_action('init', 'no_author');
これでOK
単純な文字列検索では、preg_match()よりもstrpos()を使ったほうがいいってことになってるので今回はstrpos()を使用。
コメント