ブログ運用

WPサイトで「?author=1」のアクセスを拒否(非表示)する方法【セキュティ対策】

2022年5月6日

困ったさん
自分のサイトで「(サイトのURL)/?author=1」のようにアクセスすると、 ユーザー名(WPにログインするID)がだれにでも閲覧されてしまう。。。

どうにかしたいな、、、、

 

この記事の内容

・「?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の編集である。

くれぐれも更新する際は慎重にするべきだが
上級者の方法だからといって後回しにしていると

サイトを乗っ取られてしまうこともあるので、思いっきりも大切。

 

にぃやん
それでは
  • この記事を書いた人
つちだ

つちだ ろい

現役のエンジニアです。日々Web制作に勤しみつつ、ブログ更新していきます。ポートフォリオ兼仕事依頼ページも同時に作成中ですのでご期待ください。/東京在住/30歳/フロントエンド/スノボ/バイク/オムライス

-ブログ運用