今できるWordPressのセキュリティ対策を考えてみる!

公開日:2014年6月26日
最終更新日: 2015年2月23日

wp_security_photo_01

こんにちは!

突然ですがWordPressのセキュリティ対策はどうされていますか?

去年、ロリポップが攻撃されて、一部WordPressのサイトが表示されなくなりました。

幸い私は被害を受けませんでしたが、セキュリティ対策を考えて実施しておかないと、いつ自分のサイトが攻撃されるか分からないということを考えさせられる出来事でした。

今回は、WordPressでサイトを運営する上で、最低限行っておくべきセキュリティ対策について考えてみたいと思います。

目次!

1.WordPressのセキュリティは?
2.考えられる基本のセキュリティ対策!

WordPressのセキュリティは?

WordPressは今では世界で一番有名で利用されているCMSです。

フリー(オープンソース)で利用できる上に、数多くの便利なプラグインがありますし、SEOにも最適化されています。これだけのシステムをフリーで使用できれば、そりゃ皆、使用します。

ただセキュリティ面ではオープンソースである以上、システムの脆弱性も考えておく必要があります。

オープンソースは、誰でもソースコードを変更、配布することができます。

そもそも脆弱性のないシステムはこの世に存在しません。攻撃されたサイトは基本のセキュリティ対策(WordPress本体やプラグインのアップデートなど)を怠ったことにより、攻撃を受けるケースがほとんどです。

ならば基本のセキュリティ対策とはどういったものでしょうか?

今回は、具体的に基本のセキュリティ対策について考えてみたいと思います。

考えられる基本のセキュリティ対策!

最新のWordPressを使用!

常に最新のWordPressを使用できるようにしておきましょう。基本のセキュリティ対策ではこれが一番効果があると思います。いつまでも旧バージョンのWordPressを使用し続けるのは、やはりセキュリティ的に不安があります。

でも考えなしに最新版にアップグレードをしてしまうと、どんな不具合が起こるか分かりません。「アップグレードしたらサイトが表示されなくなった」なんてことも有り得ますので、必ずデータベースのバックアップをしておいてください。アップグレードする時は、ローカル環境でテストはしておくべきです。

WordPressの最新情報が掲載される「WordPress 日本語ローカルサイト」のブログは常にチェックしておいた方が良いと思います。

【WORDPRESS.ORG 日本語】
公式サイト

最新のWordPressプラグインを使用!

WordPressを最新バージョンにアップグレードすると、古いプラグインは動作しなくなる可能性があります。プラグインに関しても常に最新バージョンを使用するようにしましょう。

ただWordPress本体と同じで考えなしにアップグレードすると、プラグインが動作しなくなったり、サイト自体が表示されなくなる可能性もありますので、アップグレードするプラグインは必ずバックアップしておいてください。

プラグインを使用する上での注意点ですが、非公式のプラグインは使わずに、利用している人が多く、常にアップグレードされているプラグインを利用するようにしましょう。何年もアップグレードがされていないプラグインなどを利用していると、いずれ最新のWordPressに対応できなくなります。最初から信用できるプラグインを使用しましょう。

テーブルprefixの変更!

WordPressをインストールしたことがある方はご存知だと思いますが、テーブルの接頭辞のデフォルトは「wp_」になっています。

「wp-config.php」内に記述されています。

wp_security_photo_02

この接頭辞を推測されにくいものに変更してください。インストール時に変更することができます。インストール後、もしくは運営を始めてからの変更はデータベース内の修正なども必要になりますので、インストール時に変更することをお勧めします。

WordPressの「ユーザー名」「パスワード」を予測されにくいものにする!

WordPressインストール時の「ユーザー名」のデフォルトは「admin」になっています。

この「ユーザー名」を「admin」のままにするのは、ハッキングしてくださいと言っているようなものです。「ユーザー名」を知られてしまうと、後は「パスワード」を知られるだけで、簡単に管理画面へログインされてしまいます。必ず「ユーザー名」「パスワード」は予測されにくいものに変更してください。

使用していない「テーマ」「プラグイン」は削除!

色々と試しているうちに、使用していない「テーマ」「プラグイン」だらけになることがあると思いますが、その「テーマ」「プラグイン」が原因でハッキングされる可能性もあります。使用していないものは削除しておきましょう。

「後で使用するかもしれないから」と残しておきたい気持ちは分かりますが、私の経験上、その時に使用しなかったプラグインは、今後もまず使用することはありません。仮に必要になれば再度、インストールしてください。

更新がされていないプラグインは使用しない!

非公式のプラグインや更新されていないプラグインは使用すべきではありません。長く更新されていないということは、需要がない、もしくは何らかの問題があるからです。

「wp-admin/install.php」は削除しておく!

基本、インストール時にしか使用しません。
うっかり初期化してしまっては大変ですので、インストールが完了したら削除しておきましょう。

「wp-config.php」を保護する!

「wp-config.php」はWordPressの設定情報が記述されている重要なファイルです。「wp-config.php」へのアクセス自体を禁止します。

「wp-config.php」パーミッションを「400」にしてください。
意味としては、一番権限の強いユーザーのみが書き込みが可能で、その他のユーザーは読み取りすらできません。

「.htaccess」に以下のコードを追加してください。

<files wp-config.php>
order allow,deny
deny from all
</files>

実際に「wp-config.php」にアクセスしようとすると、「403」のエラーページが表示されるはずです。

管理画面のURLを変更する!

通常はWordPressの管理画面にログインする時のURLは、

http://ドメイン名/WordPressインストールフォルダ/wp-admin/
http://ドメイン名/WordPressインストールフォルダ/admin/
http://ドメイン名/WordPressインストールフォルダ/wp-login.php/

のようになります。

ただ誰にでも分かるURLだと不正アクセスのリスクが高くなりますので、管理画面のURL自体を変更したいと思います。

「functions.php」に以下のコードを追加してください。「functions.php」は必ずバックアップしておいてください。

function redirect_login(){
  $uri = getenv('REQUEST_URI');
  if(!strpos($uri, 'test')){
    if( !is_user_logged_in() ){
      wp_redirect( home_url( '/' ) );
    }
  }
}
add_action( 'login_form_login', 'redirect_login' );

上記設定した後は、通常のログインURLでアクセスしてもトップページに遷移されるようになります。どこのページに遷移させるかは「wp_redirect」で設定しています。

上記のコードの設定では、以下のURLでログイン画面を開くことができます。

http://ドメイン名/WordPressインストールフォルダ/wp-admin/?test
http://ドメイン名/WordPressインストールフォルダ/admin/?test
http://ドメイン名/WordPressインストールフォルダ/wp-login.php/?test

「?test」の部分は「!strpos($uri, ‘test’)」で指定しています。

プラグイン「Akismet」を使用!

過去に記事にしているのですが、サイトを保護してくれる「Akismet」プラグインの導入は必須です。このプラグインを導入したおかげで、コメントスパムを自動的にスパムの項目に振り分けてくれます。

コメントスパムに関してはこれで解決しました。

過去に記事を書いています。

プラグイン「Limit Login Attempts」を使用!

「Limit Login Attempts」はログイン画面のログイン試行回数を制限できるプラグインです。ログインに何度も失敗すると、一定時間ログインができなくなります。

日本語化もできますし、ログイン画面へのリトライ回数やロックする時間など、管理画面で設定が可能です。不正にログインを防ぐことができますので導入は必須です。

過去に記事を書いています。

プラグイン「Crazy Bone」を使用!

「Crazy Bone」とはWordPress管理画面へのログイン履歴を記録して閲覧できるプラグインです。ログイン履歴を残すことによって、不正ログインがあったかどうかをチェックできます。

ログインに失敗した場合、どんなパスワードが使われていたのか記録されていて、今後のバージョンではそのパスワード一覧も確認できるようになるとのことです。

過去に記事を書いています。

「exec-PHP」を使用しない!

通常は投稿や固定ページにはPHPのコードは使用できないのですが、「exec-PHP」プラグインを導入すれば、PHPを使用できるようになります。ですが「exec-PHP」自体、セキュリティ的に問題がありますし、数年アップグレードもされていないので、使用することをお勧めできません。

どうしても投稿や固定ページにPHPを使用したい時は、ショートコードの機能を使用するようにしてください。

過去に記事を書いています。

定期的にデータベースをバックアップする!

当然のことですが、データベースは必ずバックアップする必要があります。このバックアップデータがないと何かが起こった時、二度とサイトは元に戻りません。

私は「WP-DB-Backup」プラグインを使用して、定期的にバックアップを取り、自分宛にメールで送るようにしています。バックアップデータがあれば最悪、サイトを元に戻せますので、必ずバックアップの設定はするようにしましょう。

過去に記事を書いています。

WordPressのバージョンを分からないようにする!

セキュリティ的にバージョン情報を簡単に知られるのはよくないので、WordPressのバージョンは非表示にします。

ソースで確認すると以下のような記述があるはずです。

<meta name="generator" content="WordPress 3.9.1" />

「functions.php」に以下のコードを追加してください。「functions.php」は必ずバックアップしておいてください。

remove_action('wp_head', 'wp_generator');

これでバージョン情報は非表示になります。

最後に!

上記で紹介したセキュリティ対策をやるのとやらないのでは、天と地ほどの差があります。いまだにセキュリティ対策をしていないという方(そんな人はいないと思いますが)は、ぜひご参考にしてみてください。

攻撃を受けて、サイトが表示されなくなり、復旧作業をするのは想像以上に精神的ダメージを受けます。そうならないために、普段からセキュリティ対策を考えておきましょう。

以上「今できるWordPressのセキュリティ対策を考えてみる!」でした!

それではまた。

公開日:2014/06/26
最終更新日: 2015年2月23日
カテゴリー:WordPress

関連記事

新着記事

コメント/トラックバック

トラックバック用URL:

この投稿のコメント・トラックバックRSS




管理人にのみ公開されます

正しい数値を入力して下さい *
Time limit is exhausted. Please reload CAPTCHA.

最新の記事

カテゴリー

過去の記事

プロフィール

  • 著者:Masaki Yamashita

    大阪でWEB制作の仕事をしています。
    WEBデザイン、コーディング、WordPress・EC-CUBEの設置やカスタマイズなど何でもやっています。

follow us in feedly