WordPressのセキュリティのために必ずやること。
この記事は2014/07/10に公開され2022/01/24に更新、2,903回読まれました。
何が怖くて、どこまで自衛できるか考えてみます。
まずはCrazy Boneというプラグインを入れます。【追記】このプラグイン、良かったのですがメンテナンスされなくなって長く経ちます。代替プラグインを探していますが、今のところは入れない方が良いです。
有効化すると、ダッシュボードの「ユーザー」に「ログイン履歴」という項目が表示されます。これをすぐに見ても、自分自身のログイン履歴しか表示されませんが、一晩おいて見てみると愕然とするでしょう。
自分のアカウントが表示されているプルダウンメニューを「全て」に変更して「フィルタを適用」をクリックします。
世界中から「admin」やドメイン名のアカウント名で不正アクセスが来ています。ゾッとすることうけあいです!
adminアカウントは使わない!
昔のWordPressは、インストールするとデフォルトで「admin」というアカウントが管理者として設定されていました。今も、そのまま使っている人は多いですね。
Crazy Boneを見れば分かる通り、アタッカーはadminやドメイン名と同じアカウントを狙ってパスワードを試してきます。パスワードも、辞書に載っているようなワードばかりですね。
adminはかんたんに変更できます!
- adminというアカウント自体を変更することはできないのですが、
- 新しいアカウントを管理者として作成。
- adminをログアウト、新しいアカウントでログイン。
- ユーザー一覧でadminを削除。
- adminで作成した記事をどのアカウントに割り付けるか聞いてくるので、新しいアカウントを指定。
テンプレート内でthe_author()等を使用している場合は、その修正も必要です。
ここで注意!
the_author()を表示している場合、ユーザープロフィールで姓名を設定していないとアカウント名がそのまま表示されてしまいます!せっかく他の手を打っても、情報がダダ漏れです。必ず姓名を設定しましょう。
wp-login.phpがどこにあるか?
One more thing ! もう一つ。
そもそもアタッカーがwp-login.phpにたどり着けなければ、不正アクセスも発生しないわけです。
ところが、よくある「ブログかんたんインストールサービス」なんぞでは、ルートディレクトリにWordPressがインストールされています。
多少親切(?)なところでは、サブディレクトリにシステムをインストール・ブログ自体はルートでアクセスできるように設定されます。しかし、サブディレクトリ名が「wordpress」や「wp」だったりするわけです・・・。すぐにバレる。
サブディレクトリにWordPressシステムをインストールしてルートでアクセスできるようにする設定は、こちらをご覧ください。
仮にサブディレクトリ名を複雑にしても、実は意味がありません。なぜなら、画像をアップロードするディレクトリがシステム配下にあるからです。投稿内の画像を右クリックして「新しいタブに画像を表示」してみましょう。すぐにURLがばれてしまいます。「wp-content」の上のディレクトリがシステムディレクトリですね。
システム配下ではないディレクトリをアップロード用にする。
つまり、画像アップロード用ディレトクリは、システム配下にあってはいけないのです。
以前は「設定」の中にこれを変更する項目があったのですが、いつのまにか無くなってしまいました(バージョンを失念)。実際には無くなったわけではなく、隠れています。「設定」画面に入りURLの「options-general.php」を「options.php」に変更しましょう。長い長い設定画面が現れます。
このupload_pathとupload_url_pathを変更します。が、どうやらupload_url_pathだけ変更すれば良いようです???ちょっとテスト不足です。ごめんなさい。
- upload_url_pathは、WordPressをインストールしたのと同列の階層に設定しましょう!
- upload_pathは、サーバの物理ディレクトリです。ただし解説によって表現が違うので、WordPressインストールディレクトリからの相対パスでも良いのかもしれません。
- upload_url_pathは、文字通りHTTPアクセスする際のパスです。
- 入力したら最下段の「保存」をクリックします。
- これまでwp-content/uploadsにあったファイルをすべて移行しなければなりません。
- FTPだと、ダウンロード・アップロードという手間がかかりますが、SSHが使えればmvで移動可能です。
- 場合によっては記事内の画像リンクを修正する必要があるかもしれません。phpMyAdmin等でSQLをエクスポートし、検索置換しインポートし直します。
これでWordPressインストールディレクトリを隠すことができました。
WordPressのセキュリティホール対策とか無理ですから。
一般のユーザーがWordPressのコアやプラグインのソースを見て「これは重大なセキュリティホールが!」とか無いですから(^_^;
できることと言えば、
- WordPress公式サイトに掲載されているプラグインやテーマを使う。
- WordPressと、自分の使っているプラグインの情報に気を配る。
- 定期的にバックアップをとる。
ぐらいでしょうか?
なんにせよ、安全に使いたいものです。
これまでのコメント
[…] WordPressのセキュリティのために必ずやること。東京都練馬区。Wordpressはおまかせ。印刷・ホームページなど販売促進のためのデザインを提案します。d7r.com […]
コメントする