WordPressのセキュリティについてSNSでは定期的に話題として盛り上がりますね。
主な対策として書かれているのは以下のような内容でしょう。
- パスワードを複雑なものにする
- ログイン画面のURLを変える
- URLに表示するユーザー名を変えてユーザー名がバレないようにする
- .htaccessで特定の場所からはログイン画面を表示できないようにする
大枠としては、管理者権限のユーザーとしてログインされてしまうと改ざん被害に遭うので対策しましょうという事柄です。
で、大抵結論として出てくるのが、セキュリティ強化ができるプラグインを使いましょという内容。でも個人的には、数あるセキュリティ系のプラグイン自体のセキュリティってどう?というのが気になるので、自身のサイトではセキュリティ対策に他者の作成したプラグインを使用するのは敬遠しています。
プラグインっていうのはある程度セキュアな状態が保たれているWordPress本体に穴をあけるもの、将棋でいえば初手前の状態がWordPress本体で、プラグインやコードを追加すれば1手2手と進んでいっていつの間にか詰んでる..みたいな。これは、WordPressの関数にもともとガチガチにセキュアな状態にしているものを解除するようなものが多数あることをコードをいろいろと書いてて知ってるという視点からの意見です。
もちろん前述したような対応は間違いではないですし、このサイトでもそれらの対策は行っています。もちろん自身で責任の取れるカスタマイズコードで行っていますのでその類のプラグインは使用していません。
でもそれらのことをしなくても根本的にというか、基本的な解決ができる方法があるんです。
それが、このページのタイトルにもしている「公開するユーザーには権限を持たせない」ということです。
恐らく初めてWordPressでサイトを作り始めた方、またそうでなくても、大抵の場合、インストールした時に作成する管理ユーザーで投稿や固定ページの公開をしているのではないでしょうか?
無意識なのか、何かあった時にすぐに全部の確認ができる利便性からなのか、ほぼ100%そうした管理をされているのではないかと思慮します(多分に漏れずこのサイトも同じです..)。
そもそもこれを完全に分けて、投稿や固定ページの作成、つまりパッと表面的に公開されるユーザーには権限を持たせないようにすれば、そのユーザーのユーザー名がバレたとしても、パスワードがバレて不正にログインされたとしても、できるのは投稿の公開とメディアのアップロード位ということにできます。
やり方は簡単で新たに「投稿者」という権限を持つユーザーを追加して、投稿を作る時はそのユーザーで行い、内部の管理をしたいときだけ管理ユーザーで行うということです。
では今まで公開したコンテンツはどうする?という問題が発生しますが、これも対処は簡単。
新しく作成するユーザーを「管理者」権限にして、今まで作成していた管理ユーザーの権限を投稿者に変更するだけです。
これで初手前の状態のまま(何もプラグインやコードを書かないまま)でもある程度のログインセキュリティは担保できるのではないでしょうか?もちろんWordPressの機構上、作者の投稿一覧ページで「?author=ID」と指定すると、リダイレクト先のURLにユーザー名が出てしまうので、複雑なパスワードにすることはマストですけどね。
これに対抗するには以下のページに掲載している簡易なコードで対策できますから、やってみてもいいかも知れませんね。














コメントを残す