【セキュリティ】wordrpssのデータベースの接頭辞を変更する

in 2020年6月13日

wordrpessの接頭辞はデフォルトでは

wp_

です。

しかしほとんどのwordrpssがこのまま運営しています。

セキュリティ的には危険です。

攻撃者がSQLインジェクションを仕掛ける時に正しいテーブル名が必要になります。

例えば攻撃者がユーザーデータ一括削除のSQLインジェクションを仕掛ける場合

DELETE FROM wp_users

のような攻撃を仕掛けます。

この時攻撃者はwordprssだからユーザーのテーブル名は

wp_users

だろうと仮説を立てて攻撃してきます。

この時に接頭辞がwp_のままだと攻撃者の予想通りとなってしまい、ユーザーデータが一括削除されてしまいます。

この攻撃をかわす為に接頭辞を変更するのはwordrpessの初歩的なセキュリティになります。

 

それでは早速接頭辞の変更を説明します。

接頭辞の変更には4つの作業が必要です。

 

1.wp_config.phpの接頭辞を変更する

2.データベースの接頭辞を変更する

3.optionテーブル内の接頭辞を変更する

4.usermetaテーブル内の接頭辞を変更する

 

この3つの作業が必要になります。

※作業に入る前にかならずデータベース全体、テーブルそれぞれをエクスポートしてバックアップをローカルに保存して下さい。

※一旦全てのプラグインを停止してから作業して下さい!!!

 

 

1.wp_config.phpの接頭辞を変更する

 

ftpでwp-config.phpをローカルに落としてエディターで開きます。

この

wp_

の部分をわかりにくい文字に変えます。

サイト名をそのまま使うのも予想されやすいのでNGです。

例えば

VgOYh07KeRE_

のように意味のない乱数に変えてもいいです。

変更したらFTPでアップします。

アップしたらしばらく作業終わるまではサイトが見れなくなります。

5~10分ほどで終わりますがユーザーがアクセス出来なくなります。

あせらず作業して下さい。

 

 

2.データベースの接頭辞を変更する

次にデータベースに入って接頭辞を変更します。

phpMyAdminで説明します。

全てチェックするにチェックを入れて、

「チェックしたもの:テーブル名の接頭辞を付け替える」

にします。

付け替え元に、現状の接頭辞を入力。

付け替え先に変更後の接頭辞を入力します。

出来たら実行します。

 

※この時点でサイトを確認します。

ひょっとするともうサイトの表側は見れるようになっているかもしれません。

ただoptionに古いwp_のデータが残っているので管理画面を見ると

となっていると思います。

 

 

3.optionテーブル内の接頭辞を変更する

optionテーブルを検索します。

option_nameをlike%%で検索します。

値をwp_にして検索します。

すると

wp_user_rolesが出てきますので

wp_user_roles

VgOYh07KeRE_user_roles

のようにwp_の部分を変更後の接頭辞にして下さい。

 

※プラグインを多数入れている場合、他にも変更が必要な場合があります。

 

 

4.usermetaテーブル内の接頭辞を変更する

usermetaもoptionテーブルと同じように

 

wp_user_level

wp_capabilities

の接頭辞も変更します。

 

一般的には以上で管理画面にアクセスできるようになっています。

ただ他のプラグインを入れている場合、他にも変更が必要になるかもしれません。

一応全ての管理画面の機能を試してみてエラーが出ないか異常がないか確認して下さい。

以上があれば該当プラグインのoptionテーブルかusermetaテーブル内の該当箇所の接頭辞を変更すれば治ります。