どうにかしたいな、、、、
この記事の内容
・「?author=1」で表示されるページを非表示にできる
・セキュリティ対策ができる
現役のフロントエンドエンジニアをしています。現在はWordPress開発の仕事もしてるので、この記事の信用度も増してると思います。
「(サイトのURL)/?author=1」でアクセスすると、
下記のようにユーザー名(WPにログインするID)がだれにでも閲覧されてしまう。
(例)
(サイトのURL)/?author=1
↓
自動でリダイレクト
↓
(サイトのURL)/author/(ログインID)
自分のWordPressサイトでどうなってるか確認してほしい。
何も対策してなければリダイレクトされて、IDが醸されていることでしょう。
WPサイトで「?author=1」のアクセスを拒否(非表示)する方法【セキュティ対策】
方法はいくつかあるが、ここではfunctions.phpを編集する方法で解説する。
プラグインで解決する方法もあるが、これのためにだけプラグインを導入するより
functions.phpが触れるな、functions.phpで解決したほうが
サイトの重さ的にも、サイトのセキュリティホール的にもいいと思われる。
プラグインって増えれば増えるほど管理大変だからな、、
functions.phpのコード
まずは使用するコードがこちら
要するに、authorページにきたアクセスをトップページへリダイレクトさせているだけ。
function disable_author_archive_query() {
if( preg_match('/author=([0-9]*)/i', $_SERVER['QUERY_STRING']) ){
wp_redirect( home_url() );
exit;
}
}
add_action('init', 'disable_author_archive_query');
functions.phpを編集する方法
使用されているテーマによって、若干編集する方法や箇所は違うので
ここでは「Affinger6」のテーマで解説する。
わからなければ、「お問合せ」から連絡をどうぞ。
まずはAffingerの子テーマが使用されているか「外観」の項目で確認してください。
子テーマで編集することで、親テーマをアップデートしたときに
functions.phpがリセットされてしまうのを防げます。
Affinger6のfunctions.phpは下記の場所にあります。
ダッシュボード
↓
外観
↓
テーマファイルエディター
↓
右上の「使用するテーマ」で
「Affinger Child」を選択
↓
右の一覧から
「テーマのための関数(functions.php)」を選択
↓
コードをコピペ
↓
ファイルを更新
コードを貼る箇所は
空白の場所ならどこでも可能だと思われる。
既存で存在しているコードがあれば、
その下に追加する感じでいいと思われる。
間違っても、今あるコードを消してしまわないように、、、
まとめ
以上、わかっている人なら30秒ほどで完了する作業ではあるが
間違えると、サイトが真っ白になるというトラップ付きなのが
このfunctions.phpの編集である。
くれぐれも更新する際は慎重にするべきだが
上級者の方法だからといって後回しにしていると
サイトを乗っ取られてしまうこともあるので、思いっきりも大切。