WordPress プラグイン DB/File Diff Monitor and Backups を紹介します.
DB/File Diff Monitor and Backups
このプラグインは、WordPress のデータベースおよびファイルの変更を監視し、改ざんを迅速に検知・特定して、影響を受けた部分のみを復元することでデータ損失を最小限に抑えるためのセキュリティ&バックアッププラグインです
特徴
- WordPress データベース・ファイルの変更監視
- 改ざんの検知確認とピンポイント復元
- プラグイン・テーマ更新失敗時の緊急復旧
- データベース・ファイルのエクスポート(バックアップ)とインポート(復元)
- サイト移行(マイグレーション)機能
wp_optionsのクリーンアップによるパフォーマンス改善
ダウンロード
現在は無料で公開しています
プラグイン開発やサポートを継続するために、皆様のご支援を必要としています
将来的には有償化する予定ですので、プラグインを気に入っていただけたらご購入を検討いただけると幸いです
ダウンロードボタンをクリックするとパスワード入力ページが表示されるので、パスワード( cdmb-test )を入力してダウンロードして下さい
パスワードを入力すると自動的にダウンロードが実行されます
インストール
ダウンロードしたzipファイルは、プラグインページの新規追加 からプラグインをアップロードしてインストールすることが出来ます
必要な環境
- WordPress 6.8 以上
- PHP version 8.1 以上
- php sqlite3 拡張機能が有効化されていること
- php mysql PDO 機能が有効化されていること
ファイル変更監視
この機能を使うと、変更されたファイルを簡単に特定し、その変更内容を差分表示で確認してピンポイントの復元が可能となります
不正アクセスだけでないファイル変更によるトラブル
WordPressを運用する上でセキュリティー対策はとても大切で、どんなに強固なセキュリティ対策を行っていても100%安心と言うことは残念ながらありません
一般的に不正アクセス対策は、サーバー(ホスティングサービス)側で提供してくれている様々な不正アクセス対策を活用したり、WordPressのセキュリティプラグインを導入して行います
但し、様々なセキュリティ対策を行っても、何らかの方法で php ファイルを仕込まれて不正アクセスされたら防ぐのはとても難しいのが現実です
通常、WordPressで運用されているサイトは、数千以上のファイルが存在しています。ファイルが改変されてしまった場合、どのファイルが改変されたのか調べて復旧させるのはとても大変です
また、ファイルの改竄だけでなく、通常の WordPress 、テーマ、プラグインの更新にも様々なリスクがあります。WordPress本体の更新に対して、多くの場合、テーマやプラグインが同時に対応更新されるわけではないので、ある日突然に表示が崩れたり機能しなくなるなんてことが簡単に起きてしまいます
主なファイル監視の手順です
1,2番がインストール後に最初に行う設定となります
3番が日常的に行われる変更検出となり、4,5番が変更検出後に行う作業となります
ファイル監視オプション設定
ファイルの変更監視から除外するディレクトリ、拡張子、サイズを登録します
変更監視自動スキャン
自動的にDB/ファイルスキャンを実行する時刻を指定します
除外ディレクトリパスの登録
キャッシュデータやバックアップ用のディレクトリ、 git 等バージョン管理用のディレクトリ等を除外する場合は対象となるディレクトリをスラッシュ(/)で囲んで登録すると、そのディレクトリツリー以下のすべてのファイルは監視対象から除外されます
除外ファイル拡張子の登録
拡張子を登録すると、その拡張子のファイルはすべて監視対象から除外されます
一般的には、バックアップデータ、キャッシュデータ、圧縮ファイル、ログファイル等の運用中に追加・削除・更新が予想されるファイルの拡張子を登録します
除外ファイルサイズの登録
指定サイズより大きいファイルはファイル監視から除外します
監視用ベースデータ登録
ファイル監視から除外するディレクトリ/ファイル拡張子の登録を行ったら、ファイルの変更を監視する元となるデータを登録します

「ファイルデータ登録」ボタンをクリックすると現在のファイル情報を取得して監視用ベースデータとして保存します
監視対象となるファイルは、WordPress 内で定義されている ABTHPATH が示すディレクトリツリー以下となります
サーバー環境によりますが、初回またはデータリセット後のデータ登録は数分かかります。 登録完了まで、ページを開いたままにしてお待ちください
登録が完了するとファイル変更対象としてベースデータに登録されたファイル数が表示されます
以降、このベースデータを使いファイルの追加/削除/更新を検出して結果を表示します
ファイル変更検出スキャン
自動スキャンが設定されていれば指定時刻(wp cron による実行なので正確ではない)にファイル情報をスキャンして変更を検出します。または、「今すぐファイルスキャン」ボタンをクリックすることでいつでもスキャンすることが出来ます
ファイルの変更が検出された場合は、変更されたファイルが一覧表示されます

変更内容確認
変更ファイル一覧から、ファイル名の後に表示されているアイコンをクリックすると、そのファイルの差分が表示されるので変更内容を確認することが出来ます

プラグインやテーマの追加、削除、更新後の検出ならば不正アクセスによるファイル改竄の可能性は低いですが、それ以外でファイル変更が検出された場合は、差分表示で内容を確認してください。不正アクセスによる改竄と思われる場合は、すみやかに復元を行って下さい
同期または復元
フィルタータイプから表示対象を選択して「適用」ボタンをクリックすると一覧表示をプラグインやテーマ別に表示することが出来ます

プラグインやテーマ等の変更に対しては、ここで選択されたファイルに対して「同期」または「復元」を行うためのボタンが表示されます

同期
選択されているテーマやプラグインの変更検出データをベースデータに同期させベースデータを更新します
プラグインやテーマ毎でなくすべての変更検出ファイルを一括して同期する場合には、「ファイルデータ登録」 ボタンをクリックしてベースデータを更新します
復元
選択されているテーマやプラグインをベースデータに登録されているデータから復元します
DBテーブル変更監視
データベース監視オプション設定
データベースの変更監視から除外するテーブル、キーワードを登録します
除外テーブルの登録
テーブル監視から除外するテーブルを登録すると、そのテーブルは監視対象から除外されます
除外データ行のキーワード登録
テーブル内のキーワードを含んだデータ行を監視から除外するためのキーワードを登録します。例えば、オプションテーブルでは、データを一時的に保存するためにトランジェントデータが作成されるのでこれらを除外しないと常にオプションテーブルが変更ありと検知されてしまいます。そのため _transient_ キーワードを登録すれば、全ての一時データは変更監視から除外されます
他にも一時的なデータとして保存されるものがあるので、あなたの環境で、常に検出されるデータがある場合はそのデータを識別するためのキーワードを登録しておけば、そのデータは変更監視から除外されます
監視用ベースデータ登録
DBテーブル監視から除外するテーブル/キーワードの登録を行ったら、DBテーブルの変更を監視する元となるデータを登録します

「DBデータ登録」ボタンをクリックすると現在のDBテーブル情報を取得して監視用ベースデータとして保存します
サーバー環境によりますが、初回またはデータリセット後のデータ登録は数分かかります。 登録完了まで、ページを開いたままにしてお待ちください
登録が完了するとDBテーブル変更対象としてベースデータに登録されたテーブル数が表示されます
以降、このベースデータを使いデータベースへの追加/削除/更新を検出して結果を表示します
DBテーブルデータ変更検出スキャン
自動スキャンが設定されていれば指定時刻にデータベースをスキャンします。または、「今すぐDBスキャン」ボタンをクリックすることでいつでもスキャンすることが出来ます
データベースの変更が検出された場合は、変更されたテーブルが一覧表示されます

変更内容確認
変更テーブル一覧から、テーブル名の後に表示されているアイコンをクリックすると、そのテーブル内のデータの差分が表示されるので変更内容を確認することが出来ます

データ変更が検出された場合は、差分表示で内容を確認して、不正アクセスによる改竄と思われる場合は、すみやかに復元を行って下さい
同期または復元
フィルタータイプから表示対象を選択して「適用」ボタンをクリックすると一覧表示をプラグインやテーマ別に表示することが出来ます
プラグインやテーマ等の変更に対しては、ここで選択されたテーブルに対して「同期」または「復元」を行うためのボタンが表示されます
同期
選択されているテーマやプラグインの変更検出データをベースデータに同期させベースデータを更新します
プラグインやテーマ毎でなくすべての変更検出テーブルを一括して同期する場合には、「DBデータ登録」 ボタンをクリックしてベースデータを更新します
復元
選択されている対象のテーブルデータをベースデータに登録されているデータから復元します
緊急復旧
プラグインやテーマの更新後などで WordPress が起動しなくなった場合の復旧機能です
WordPress はちょっとした不具合等で実行不能になってしまうことがあります。これは不正アクセス等によるファイルの改竄等にかぎった話ではなく、WordPress 本体やプラグイン、テーマ等の自動更新を有効にしていて、ある日突然に実行不能になるなんてことが起きる場合があります
実行不能になってしまうと、技術的な知識がないと復旧させるのはとても難しくなります
WordPressが実行できず、ログインが出来なくなった場合も慌てないでください。WordPressとは別に実行できる緊急時用の復元ツールを使用すればWordPressを実行できる元の状態に戻せる可能性が高いです
例えば、あなたのサイトが example.com の場合は下記のようなURLへアクセスして、サイト管理者ユーザーでログインするとファイル復元ツールが使用できます
https://example.com/wp-content/plugins/celtis-diff-monitor-backups/restore-wpcore.php
仮に jewelbeetle というテーマを更新したら、何らかの不具合がありWordPress が起動しなくなってしまったというケースを想定して復元手順を説明します
ブラウザからこのURLへアクセスすると、サイト管理者ユーザーのログイン画面が表示されるのでユーザー名とパスワードを入力してください

ログインするととてもシンプルな画面が表示されます

「Scan」ボタンをクリックすると登録済みのベースデータに対して WordPress コア、プラグイン、テーマに対してのファイル変更を検出致します
変更が検出されると下記のように表示されます

この例では jewelbeetle テーマが対象なので下に表示されている 「Restore」ボタンをクリックして以前の状態に復元させます

これで jewelbeetle テーマは動作していた状態のファイルに復元されたので example.com サイトにアクセスすればサイトが表示されるようになります
また、不具合のある対象が不明な場合は、テーマやプラグインを順番に1つずつ 「Restore」 しながらサイトが表示されるか確認し、不具合の対象が特定できた時点で、それ以外のプラグイン等に対しては 「Undo Restore」で元に戻しておきます
(このページの操作有効期限は約1時間となっています。超える場合はリロードして再度スキャンから始めて下さい)
復元してもサイトが表示されない場合
この復元ツールを使ってもサイトが表示されないケースも考えられます
例えば、PHPのバージョンを変更した事に起因する場合、
この場合は、PHPバージョンを元に戻すか、新しいPHPバージョンで初めから構築しなければならない場合もあります
他にも、.htaccess ファイルが改竄されて違うサイトにリダイレクトされるなんて場合もあります。このような場合では、復元ツール自体が実行できないこともあるので確認してみてください
エクスポート/インポート機能
バックアップは、ホスティングサービス側に機能があればそれを利用したり、プラグインを使って定期的に実行しておくことが大事です
このプラグインでは、エクスポート/インポート機能を使って、簡単にバックアップや復元を行うことができます
エクスポート(バックアップ)
ユーザーコンテンツファイル
エクスポートで選択したファイルがアーカイブされバックアップとしてダウンロードされます
- メディアファイル (uploads)
- プラグイン (plugins)
- テーマ (themes)
- 上記以外のその他
wp-content内ファイル
データベーステーブル
WPコアやプラグイン等の選択したテーブルがダンプファイルとしてダウンロードされます
インポート(復元)
このプラグインでエクスポートしたバックアップをインポートすることができます
バックアップしたファイルをインポートするだけで、復元処理が行われます
マイグレーション機能
エクスポートした uploads、content、plugins、themes ファイルアーカイブやデータベースのダンプファイルを使って、他のWordPressサイトへデータを移行させることができます
元サイト
はじめに移行前のサイトのエクスポート(バックアップ)からuploads、content、plugins、themes のファイルアーカイブをエクスポート、次に必要なデータベーステーブルをエクスポートします
通常は全てのデータベーステーブルをエクスポートすればよいですが、WPコアと必要なプラグイン等のデータベースに限定してエクスポートすることも可能です
データベース内のテキスト型カラム内にシフトJIS等の文字コードがある場合は UTF-8 への文字コードへ自動変換したダンプファイルが生成されます
移行先サイト
移行先サイトは、WordPress が動作している必要があります
はじめに、移行先サイトにも DB/File diff monitor and backups プラグインをインストールして、セットアップしてください
インポートすると移行先サイトのデータベース内のデータはクリアされて、インポートしたデータに置き換わりますので、移行先サイトに既にデータが存在する場合は必要に応じて事前にバックアップしておいてください
移行先サイトに、プラグインやテーマファイル等がある場合は必要に応じてバックアップを行い、このプラグイン以外のプラグインはアンインストールしてください
移行先のインポート(復元)から、最初にファイルアーカイブのインポート、次にDBダンプファイルのインポートを行ってください
インポート時に移行先サイトの siteurl、home、uploads、content、plugins、themes パス、データベースプレフィックスに合わせてインポートデータ内の該当するデータを自動的に置換します
移行後は、リンク切れ等がなくサイトが正常に表示されることをご確認ください
user, usermeta テーブルをインポートすると、インポートしたユーザーデータに置き換わりますが、移行先サイトでインポートを行っている管理者ユーザーのユーザー情報のみは保護され、移行後もその管理者ユーザーとパスワードを使用してログインすることができます
メンテナンス機能
プラグインを沢山試用していると、インストールやアンインストールが繰り返されて知らず知らずのうちにプラグインのデータがオプションテーブルに残り、それらが累積することでパフォーマンスの低下になる場合があります
それらの不要になったオプションデータを選別して、クリーンアップやオートロード動作の無効化を行えるようにサポートする機能です
wp_optionsに残された不要なデータのクリーンアップwp_optionsオプションのオートロードの無効化によるパフォーマンス向上
免責事項
本ソフトウェアの使用により生じたいかなる損害についても作者は責任を負いかねますので、自己責任においてご利用ください
履歴
Ver 0.9.0
2026-3-24
最初のリリース
おわりに
DB/File Diff Monitor and Backups プラグインをご利用いただきありがとうございます
ご購入いただいている場合は、メールによるお問い合わせをお受けしています(ご購入時のお取引番号を記載してください)
他に、画像最適化を行うプラグインの提供もしています
WordPressのサムネイルサイズの設定に関係なく、いつでも好きなサイズにリサイズした画像が使えたり、簡単に WebP画像 を活用して軽量・高速化することが出来ます

セルティスラボ