5
01
2008
WordPress のセキュリティー対策(その1)
WordPress のデータベースプレフィクス設定について
WordPress を使い始めた頃は、細かな設定方法が分からずとにかく運用を始めてしまいがちですが、運用開始後にセキュリティーなどの事が心配になり、セキュリティー面を強化しようとされている方も多いかと思います.
WordPress をインストールする際に、データベーステーブル名のプレフィクスをサンプルファイルと同じ “wp_” のまま使っている方が多い事と思います.Wordpress のセキュリティー対策の一つとして、 データベースのプレフィクスをデフォルトの “wp_” 以外の推定されにくい文字列に変更するというものがありますが、この事に気付いたときには既に相当な数のコンテンツがデータベースに格納されてしまっていて、今更変更できないという方も多いのではないでしょうか.
WordPress の心臓部であるデータベースに変更を加えるのは相当な覚悟が必要ですよね.失敗するとコンテンツを失いかねません.勿論データベースのバックアップを取って失敗しても大丈夫なように対策を取りますが、データベースを再構築するのは大変面倒な作業です.
今回は、なるべくデータベースの再構築をせずに、短時間でデータベーステーブル名のプレフィクスを変更する方法について紹介します.
WordPress のセキュリティー対策については、折に触れて紹介したいと思いますが、先ずは、セキュリティー対策についてのホワイトペーパーをご覧下さい.
WordPress Whitepaper v1.2 (PDF) By BlogSecurity.net (セキュリティー対策指南書のようなもの:英文です)
プラグインでデータベースプレフィクス設定を変更する
データベーステーブル名のプレフィクスを変更する方法のうち、一番手軽で手間が掛からないのがこの方法です.WordPress Whitepaper v1.2 でも紹介されていますが、”WP Prefix Table Changer” という専用のプラグインが用意されています.このプラグインを用いても良いのですが、それよりも “wp-security-scan” という新しいプラグインの方が高機能で、データベースプレフィクス以外のセキュリティー面についても調べてくれます.
先ずは、この “wp-security-scan” プラグインを入手して下さい.
このプラグインを有効にして、セキュリティースキャンを行ってみます.
セキュリティースキャンの結果
上記の画面で赤字の部分が、セキュリティー面で何らかの対策が必要な箇所です.指摘された点は、
・データベースのプレフィクスが “wp_” のままである
・ “admin” という管理者アカウントをそのままの名前で使っている
・ wp-admin ディレクトリに “.htaccess” ファイルが設定されていない
の3つですね.今回の主眼はデータベースのプレフィクスを “wp_” 以外のもっと複雑な名前に変更することですので、指摘された行にある “Click here” をクリックして、データベースのプレフィクス変更ダイアログに移動して下さい.(セキュリティーメニューの”Database” からもデータベースのプレフィクス変更ダイアログを呼び出すことができます)
当然ですが、この操作を行う前に必ずデータベースのバックアップを取っておいて下さい.プラグインプログラムが行う事とは言え、データベースを直接操作していることに違いはありませんので、失敗するとデータを失う可能性があります.
データベースのプレフィクス変更
このダイアログでデータベーステーブル名のプレフィクスを簡単に変更できるはずなのですが、私の場合は次のようなエラーメッセージが出力されてしまい、上手く変更できませんでした.これはデータベースに対してテーブル名の変更をする操作が許可されていない事が原因のようです.データベースの操作権限を変更すれば良いのですが、自分でデータベースサーバを立てていない限り、おいそれとデータベースの操作権限をユーザに付与することはできません.
データベース操作の権限が無くプレフィクス変更ができなかった例
大部分のユーザはデータベースに対しは限定された権限しか与えられていないのが普通で、そのため多くのユーザはこのプラグインではデータベーステーブル名のプレフィクスを変更するのは難しいでしょう.
この対策についてはエラーメッセージのクリック(”documetation” )を辿っていくと、手動でデータベーステーブル名のプレフィクスを変更する手順が書かれているページが現れますが、このページで紹介されている手順はあまりお薦めできません.
この方法では、データベースの内容を一旦 SQLダンプして、テキストエディタでテーブル名に関わる部分を変更して、空の新しいデータベースに SQLでリストアするという面倒な操作が必要です.SQLダンプデータの中からテーブル名に関わる部分だけを抜き出して変更するのは結構大変です.下手に “wp_” という文字列を書き換えるとテーブル名以外の部分も間違って置換してしまう恐れがあります.
今回は WordPress Whitepaper v1.2 で紹介されている方法( PHPMyAdminを用いてデータベーステーブルの名前を直接操作する)を紹介します.
記事が長くなったので、PHPMyAdminを用いてデータベーステーブルの名前を直接操作する方法については次の記事で紹介することにします.