ブログ運用

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歳/フロントエンド/スノボ/バイク/オムライス

-ブログ運用