この記事では、Wordpressの投稿者アーカイブを無効化する方法を説明します。
こんにちは、管理人のうみにん(@11tejun)です。
今日は前回アップした記事[【WordPress】ユーザ名がバレる?原因と対策を説明!]が大変好評だったので、後継版として「そもそもユーザIDがバレるようなコマンドを受付禁止にする」方法を説明します。
5分で導入できる超簡単な手順ですので、あなたのサイトにもぜひ導入してみて下さい!
内容(押すと移動できるよ)
【必見!】当サイトに初めて来た方へ
この記事に初めて来た方もいると思るので、まずはWordpressのセキュリティ脅威について説明します。
早速ですが、以下のコマンドをあなたのWEBサイトのURLの一番後ろに付けて、アクセスしてみて下さい。
/?author=1
ご自身のサイトURL「http://XXXXX.com」の場合は「/?author=1」を一番後ろに付けて「http://XXXXX.com/?author=1」といった具合です。
このアクセスの結果、URLにご自身のWordpress管理画面にログインするためのユーザIDが表示されていませんか?
私も初めてこのコマンドを知った時は「なんでやねん!アカンやん!」ってツッコミを入れました。
今、ご自身のWEBサイトがユーザIDの垂れ流しだということに気づいたあなた!必ずこのページ、または前回の記事[【WordPress】ユーザ名がバレる?原因と対策を説明!]の手順を実施し、セキュリティ対策をしてくださいね。
ちなみに前回の記事はユーザIDをダミー化する手順で、今回の記事はそもそもこの「/?author=1」コマンドを禁止する手順になります。
先ほどあなたに入力してもらった「/?author=1」というコマンドの意味について簡単に触れておきたいと思います。
つまり、「author1という名前のユーザが過去に投稿した記事を一覧で表示しなさい!」という意味のURLだったのです。
「author1とか作った覚えがない!」と感じるかもしれませんが、Wordpressはログイン用のユーザを作成する度に内部的にはauthor「1」「2」…という風にIDを採番しているのです。
以上の経緯から、あなたのサイトはユーザIDが垂れ流しになっている状態だと認識いただけたかと思います。
そこで、ココからはこの投稿者アーカイブページを表示するコマンドを禁止する方法を説明します。
【手順1】使用するコマンド
投稿者アーカイブページ表示を無効化するコマンドは以下の通りです。
//投稿者アーカイブを廃止 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');
【手順2】function.phpに追記
それでは、先ほどのコマンドをご自身が使用しているテーマ内のfunction.phpに追記しましょう。
function.phpはWordpressを稼働させるための重要な関数が様々記載されています。
つまり、括弧のズレ等を起こすとWEBサイトが全く表示されなくなります。
なので、編集を加える前にまずはメモ帳等のエディタに編集前のfunction.phpをコピペしておきましょう。
もし、誤って真っ白の画面になってしまった場合は、WindowsならWinSCP、MACならFileZilla等のファイル操作アプリケーションを使用してサーバにアクセスし、function.phpを事前に取得したバックアップに書き換えしましょう。
【手順3】投稿者アーカイブが無効になっていることを確認
最後に投稿者アーカイブが無効になっていることを確認しましょう。
使用するURLは初めに出てきた以下コマンドを使って下さい。
/?author=1
「お探しのページは見つかりません」のエラー画面が出てくれば成功です!!
【まとめ】今からセキュリティ対策を!
今回も最後まで読んでくださり、ありがとうございます。とても嬉しいです。
WordPressは全世界で使用されているツールのため、不正アクセスが多いのも現状です。
不正アクセスをされてしまうと、あなたが大切に作ってきたWEBページを改ざんされたり、最悪のケースとして個人情報の流出…って事も起きる可能性があります。