WordPress〜セキュリティを考えてみる!〜

WEB制作・開発実例・コラム
2017.06.22

誰でも簡単に扱えるオープンソフトウェアであるwordpressのセキュリティ性とセキュリティ対策について簡単にまとめてみました。

wordpressのセキュリティ性

wordpressのシェア率

wordpressのシェア率を見るにはまずWEBサイトの内どのくらいのサイトがCMSを利用して サイトを作成・管理しているか知る必要があります。
(CMSとはコンテンツ マネジメント システムの略称で、簡単に言ってしまえば、誰でも手軽にWEBサイトの作成・更新・管理ができる ソフトウェアのことです)
その上で、全WEBサイトの内wordpressを使用している割合はどれ程でしょうか?


Usage of content management systems for websites



上記のサイトを参考にして見てみると、CMSを利用しているWEBサイトは全WEBサイト中約58%で、その内wordpressを利用しているのは約60%です。つまり全WEBサイトの内、約30%がwordpressを利用しているということになりまう。 他のソフトのシェア率を見てみてもダントツですね!(すごいです!)

ではなぜ、ここまでwordpressが人気なのでしょうか?
私は以下のような理由が挙げられると思います。

(1)無料で利用できる!
これはかなり大きいと思います。
wordpressはフリーかつオープンソフトウェアなので、あらゆる便利機能が無料で使えます。

(2)バージョンアップ頻度が多い
wordpressはオープンソフトウェアなので、世界中のエンジニアが日々様々な機能を 模索し、作成しております。
その為、どんどん便利に進化していきます。

(3)プラグインが数多くある
プラグインによって標準のwordpressには存在しない機能を追加機能として追加できます。
そしてその多くが無料で利用できます。

上記のように、無料で日々進化しているという点がこれだけのシェア率を生み出しているのではないかと考えます。

wordpressのセキュリティ

上記で長々と書きましたとおり、数多くの個人・企業がwordpressを利用しています。
wordpressはHTML,CSS,PHPなどのプログラム言語に馴染みのない人たちにとっても とても簡単にWEBサイトを作成することができます。
しかし、そのような手軽な反面、脆弱性(セキュリティの抜け道)が多かったりします。
以下に、攻撃(ハッキング)されたWEBサイトのプラットフォームに関するデータがあります。


Hacked Website Report



上記のデータを見ると、WEBサイトで使用しているプラットフォームの中で攻撃されている割合は約74%が wordpressとなっています。(こっちもダントツです!)
今回はwordpressのセキュリティ対策の中で、いくつかパターンを 書いてみたい思います。


wordpressのセキュリティ対策

バージョン管理

まず初めにwordpressや利用しているプラグインのバージョンが最新のものかどうか確認してください。
(”[自サイトのURL]/readme.html”で確認できるかと思います)
wordpressは多くの利用者がいるため、脆弱性も見つかりやすいです。
見つかった脆弱性などはバージョンアップによって対処されることが多いため 常に最新のバージョンを利用するようにしてください。

データバリデーション

多くのWEBサイトには登録やコメント欄、お問い合わせなどの入力フォームが存在すると思います。
このような入力フォームに対して悪意のあるスクリプトを埋め込み(クロスサイトスクリプティング)、 ユーザのCookie情報から個人情報を盗んだりするWEBサイトへの攻撃方法があります。

以下のようなスクリプトをコメント欄記載してページを開くと、予期しないスクリプトが実行されてしまいます。

<script>alert('悪意のあるスクリプトですよー');</script>




上記のような対策として、データバリデーションをしっかりと行うことが重要となります。
データバリデーションとはユーザーが様々な入力フォームに対して入力を行いサーバーへリクエストする時に 入力された内容のチェックをすることです。

例えば上記のようにコメント欄にJavaScriptやHTMLなどを入力させないようにするためには「< >」、「””」、「”」などの特殊文字をエスケープして出力することで対策できます。
functions.phpに対して、以下のような関数を追加してみます。
// $comment_contentに入力されたコメントデータが入ります
function html_to_text($comment_content) {
    if ( get_comment_type() == 'comment' ) {
        $comment_content = htmlspecialchars($comment_content, ENT_QUOTES);
    }
    return $comment_content;
}
add_filter('comment_text', 'html_to_text', 9);

上記の処理を追加した後、再度WEBサイトを確認してみると、、、



コメント欄には通常の文字列として表示され、さっきのようなスクリプトは実行されませんでした。

このように、ユーザーの方が入力したものに対してしっかりとしたチェックを行うことが重要です。

セキュリティ対策用のプラグイン

wordpressの数多くのプラグインの中には、セキュリティ対策を行うためのプラグインが存在します。 その中でいくつかご紹介したいと思います。

SiteGuard WP Plugin



上記のプラグインは不正ログインの防止や不正ログイン時にメールで管理者へ通知するなどの 機能を持っています。
設定画面の言語が日本語で、設定がわかりやすいのが特徴です。

iThemes Security



上記のプラグインは高度なセキュリティ対策を行えます。
ブロックしたいユーザーのIPを指定し、アクセス拒否できたり、ログイン試行回数の制限やデータベースの定期的な バックアップなどなど様々な機能があります。
表記が英語で設定項目数がおおめなため少々複雑ですが、セキュリティ対策としてはかなり堅牢です。

最後に

ものすごく簡易的にwordpressのセキュリティと対策について書いてみましたが、 これはほんの一部です。
wordpress自体もそうですが、無料で提供されている膨大な数のプラグインもまた、 セキュリティ面で適しているのか判断する必要があります。
便利だからといって無闇に利用してしまうと、もしかしたらセキュリティホールがあるかもしれません。
対策をしっかりせず、問題が起これば、悪意のない一般のユーザーにも多大な影響が出てしまうかもしれません。

この記事を見て、少しでもWEBサイトのセキュリティについて考えていただければ幸いです。

コラム

最新コラム

人気コラム

ご質問やご相談などお気軽にお問い合わせください。

お電話でのお問い合わせはこちら

03-5829-9912

受付時間:平日10:00~19:00(土・日・祝日を除く)