投稿者アーカイブについて
WordPressには投稿者ごとのエントリーをまとめた、投稿者アーカイブというページがあります。
カテゴリーページの投稿者版といった感じです。
なぜ危険なのか?
WordPressは世界中で利用されているオープンソースプログラムです。
そのためログインページの推測が容易であり、不正ログインの対象になりやすいです。
また、URLが「https://example.com/author/投稿者ID/」のようになりますが、
この「投稿者ID」に表示されるのは投稿者のユーザーIDです。
いわば『投稿者アーカイブ≒ユーザーIDを教える』ようなものです。
・ログインページ
・ユーザーID
と続いたら残りはパスワードですね?
パスワードが知られていなければ大丈夫じゃないの?とお思いの方、非常に危険です!!
パスワードだけであれば、力任せの総攻撃で容易に突破されてしまいます。
どうやって確認出来る?
サイトURL/author/投稿者ID
で確認してみてください。
該当する投稿者のアーカイブが表示されるはずです。
Not Foundや404エラーが返される場合は、
・投稿者アーカイブ非表示対応が出来ている
・投稿者IDを間違えている
のどちらかです。
投稿者アーカイブを無効化しよう
管理画面 > 外観 > テーマファイルエディター
にて、「編集するテーマを選択」で、使用中のテーマを選びます。
「テーマのための関数(functions.php)」を開き、
//投稿者アーカイブを無効化
add_filter( 'author_rewrite_rules', '__return_empty_array' );
function disable_author_archive() {
if( $_GET['author'] || preg_match('#/author/.+#', $_SERVER['REQUEST_URI']) ){
wp_redirect( home_url( '/404.php' ) );
exit;
}
}
add_action('init', 'disable_author_archive');
を追加して、『ファイルを更新』してください。
再度確認してみよう
functions.phoを更新したら、改めて
サイトURL/author/投稿者ID
を確認してください。
Not Foundになったら成功です。
Cocoonの方は要チェック!
Cocoonを使用している方は「投稿者名」を表示されている方が多いです。
※本文下にある鉛筆マークの部分
この表示が残っていると上記設定をしてもリンク先に投稿者IDが含まれるため、せっかく対処しても意味がありません。「Cocoon設定>本文>投稿者名の表示」のチェックを外しましょう。
コメント