• WordPressのファイル編集を止めるならDISALLOW_FILE_EDITとDISALLOW_FILE_MODSを分ける

WordPressのファイル編集を止めるならDISALLOW_FILE_EDITとDISALLOW_FILE_MODSを分ける

公開日: 執筆:佐藤

WordPress管理画面のテーマ編集とプラグイン編集だけを無効にするなら、wp-config.phpへDISALLOW_FILE_EDITを設定します。更新、インストール、削除まで止めるDISALLOW_FILE_MODSとは目的が違います。

編集画面を消したいという理由だけでDISALLOW_FILE_MODSを使うと、WordPress本体、テーマ、プラグインの更新作業まで止まります。誰が、どの経路でファイルを変更するのかを決めてから、止める範囲を選びます。

DISALLOW_FILE_EDITは管理画面の二つの編集機能を止める

wp-config.phpの、WordPress本体を読み込む行より前へ次の一行を追加します。標準の設定ファイルなら、/* That's all, stop editing! Happy blogging. */より前です。

define( 'DISALLOW_FILE_EDIT', true );

この設定により、管理画面のテーマエディターとプラグインエディターを利用できなくなります。WordPressの設定ファイルに関する説明も、管理画面から機密性の高いファイルを変更し、サイトを停止させる事故を防ぐ用途を示しています。

WordPress 3.5.1では、edit_themes、edit_plugins、edit_filesという権限の判定時に、DISALLOW_FILE_EDITが有効なら操作を許可しません。管理者だけを例外にする設定ではなく、該当する編集機能を全利用者から止めます。

ファイル自体を読み取り専用にする設定ではない

DISALLOW_FILE_EDITは、サーバー上のテーマファイルとプラグインファイルの権限を変更しません。FTP、サーバーのファイル管理画面、別の更新手段から行う変更も止めません。

したがって、この定数を追加したことを、ファイル保護の完了とは扱えません。WordPressへログインする利用者、サーバーへ接続できる利用者、ファイルの所有者と書き込み権限は、別に管理します。

テーマを修正する場合も、管理画面のエディターを再び開くことだけが方法ではありません。変更前のファイルを保存し、編集用の環境で確認してから、決めた方法でサーバーへ反映します。親テーマを変更する必要がなければ、子テーマへ変更を分けます。

DISALLOW_FILE_MODSは更新とインストールも止める

WordPress管理画面から、ファイルの編集に加えて、本体、テーマ、プラグインの更新、インストール、削除も止める場合は、次の定数を使います。

define( 'DISALLOW_FILE_MODS', true );

DISALLOW_FILE_MODSを有効にすると、テーマエディターとプラグインエディターも無効になります。そのため、両方の定数を重ねて書く必要はありません。

止める操作 DISALLOW_FILE_EDIT DISALLOW_FILE_MODS
テーマエディター 止める 止める
プラグインエディター 止める 止める
WordPress本体の更新 止めない 止める
テーマとプラグインの更新 止めない 止める
テーマとプラグインのインストールと削除 止めない 止める

更新を別の配布手順で管理しているサイトでは、DISALLOW_FILE_MODSが役立つ場合があります。ただし、管理画面から更新できないことと、更新しなくてよいことは同じではありません。適用する前に、更新ファイルを用意する人、反映する人、失敗時に戻す人を決めます。

編集を無効にしてもログイン対策は残る

管理画面のエディターを止めれば、ログインできた利用者がその画面からPHPファイルを書き換える経路は減ります。しかし、不正なログインそのもの、弱いパスワード、古いWordPressやプラグイン、サーバー側の書き込み権限を直す機能ではありません。

設定後も、不要な管理者を残さず、利用者ごとに別のアカウントを使います。WordPress本体、テーマ、プラグインの更新計画も維持します。一つの定数を、ほかの管理作業の代わりにしてはいけません。

設定後は編集画面と更新画面を別々に確認する

まず、設定前のwp-config.phpを保存し、現在の更新手順を確認します。定数を追加したら、管理画面からテーマエディターとプラグインエディターが使えないことを確認します。

DISALLOW_FILE_EDITだけを使った場合は、更新画面まで無効になっていないことも確かめます。DISALLOW_FILE_MODSを使った場合は、管理画面の更新とインストールが止まり、代わりの更新手順を実行できることを確認します。

作業を制作会社へ頼む場合も、定数を追加した人だけでなく、その後の更新担当を記録してください。最初に決めるのは、どの定数を書くかではありません。管理画面で止める操作と、残す更新経路です。

戻る