Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548
Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548
Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548
Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548
Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548
Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548
Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548
Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548
こんにちは!SE ブログの相馬です。
今回は、WordPress のセキュリティについて、データベースの接頭辞というものを変更してみました。
WordPress を初期インストールした直後は、接頭辞がデフォルトになっております。ですのでこれは必ず変更するようにしましょう。
ちなみに WordPress を初めてセットアップする場合は、セットアップ時に変更できるはずですので、ここでは省略します。
ここでは、初期セットアップにに変更しなかった、あるいはできなかった場合や運用に入ってしまっている場合になります。
私の環境は AWS の Lightsail ですので、セットアップ画面はないので変更できませんでした。(多分そのはず。。。)
データベースの接頭辞を変更する理由
WordPress のデータベースのテーブル接頭辞はデフォルトでは、 wp_ になっています。
このデフォルトの接頭辞は WordPress を知っている人であれば簡単に推測できますので、攻撃を受けやすくなる可能性があります。
ですので変更する必要があるわけです。特に複数の WordPress のブログなどを 1 つのデータベースで運用していて、且つ接頭辞を変更していない場合は非常に危険です。
接頭辞を変更する方法
接頭辞を変更する為には、WordPress のプラグインや、手動で対応する必要があります。
WordPress を初期インストールする場合は、インストール時に変更が可能です。しかし、既に運用してしまっている場合はプラグインを使い、簡単に設定をしたほうが良いでしょう。(私はプラグインを使いました。)
手動での場合、直接 DB を触るので、設定を間違えてしまった場合、最悪 WordPress のサイトが動作しなくなる可能性があります。もちろんプラグインもそうですが、プラグインのほうがとても簡単ですので、難易度は全然低いかと思います。
WordPress のプラグインを使う場合、DBのテーブル接頭辞を変更するプラグインはいくつかあるようですが、私は Change Table Prefix を使いました。
ただしこのプラグイン、私が使った 2018 年 4 月時点では、最終更新が 2 年前だそうで、最近の WordPress のバージョンでは検証されていないようです。
ただし、プラグインのサイトにあるレビューを見ると最近のバージョンでも Worked perfectly とか書いてあるので恐らく動くかと思われます。ですので、やってみたいと思います。
※ 実際、自分は別々の WordPress で 2 回同じ方法で実施しましたが、問題なく変更できました。
接頭辞を変更しない場合の危険性
接頭辞を変更しないと、WordPress の DB 接頭辞がデフォルトの「wp_」や「wpl_」である事が脆弱とされ、SQLインジェクションによって攻撃されてしまう可能性があります。
また、有害サイトなどにリダイレクトするURLを仕掛けられてしまい、さらにはサイトそのものが改ざんされてしまう恐れがあります。
事前作業
データベースの接頭辞を変更する場合は、危険を伴う作業ですので、WordPress のバックアップはしておいたほうが良いかと思います。
ちなみに、私が使った Change Table Prefix の場合は サイトの DB と wp-config.php をバックアップしてくださいと書いてありました。
Warning: Please make sure to take backup of your site database and wp-config.php file is in writable mode before start table prefix change.
インストール方法
1. プラグインを追加から、以下の画像のように Change Table Prefix と入力して、インストールします。
2. [有効化] をクリックします。
3. インストールされた事を確認します。
設定方法
1. WordPress の [設定] から [Change Table Prefix] をクリックします。
2. プラグインの画面を表示すると、上部に以下の表示があります。wp_ が現在の(初期の) 接頭辞名となります。
Your current table prefix is: wp_
変更するには、以下の画面をとおりに進めます。
- [Would you like to your own custom prefix.] にチェックを入れます。
- 変更後の接頭辞を入力します。
- その後にボタンをクリックします。
Enable site as maintenance mode という機能があるようですが、プラグインのバージョンが古く使いたくなかったので使いませんでした。
3. [Click to change table prefix] をクリックします。1箇所エラーが出ています。wp-config.php が権限により変更できないので、エディタで変更してください。という内容のようです。
4. エディタかコンソール上で、wp-config.php ファイル内の接頭辞を変更します。
必ず、先ほど変更した接頭辞と同じ文字列を入力してください。
5.WordPress にの管理画面アクセスします。もし以下の初期セットアップ画面が表示されたら、画面を更新するか、ブラウザのアドレスバーに再度管理画面の URL かドメインを手動で入力して、ページを移動してください。(設定が初期化されているのではございませんので安心してください。)
6. 1.の手順でのプラグインの画面で、prefix 名が変更されたか確認します。以上です。
まとめ
いかがでしょうか。うまくできないと最悪、サイトにアクセスできなくなる作業ですので、結構ヒヤヒヤしながら設定しました。
セキュリティ上大事な作業ですので設定が出来て良かったです。
最後までお読みいただきありがとうございました!