アクティベーション後にプラグインまたはテーマがサイトに加えた変更を判別する方法

公開: 2018-10-30

テキストよりもビデオを好む? 私たちはあなたをカバーしました–これが短いビデオの記事全体です。

必要に応じて、vancedyoutubeを使用してビデオを見ることができます。

プラグイン(またはテーマ)をインストールするということは、サイトを開発者の手に完全に信頼していることを意味します。 サイトに配置しているコードで実行できることには制限はありません。 CSSのバグにより、すべてのボタンを2ピクセル左に移動できますが、すべてのファイルとデータベース全体を意図的に消去することもできます。 公式のWPリポジトリからプラグインをインストールすると、2番目のシナリオの可能性がなくなりますが、それでも疑問が残ります。プラグインは私のサイトにどのような変更を加えましたか?

実際には、プラグインはどのような変更を加えますか?

現実的なシナリオの前に、もう一度理論的なシナリオを繰り返します。 サイトにサードパーティのPHPコードをインストールしてアクティブ化します。 PHPの領域にあり、サーバー上の機能と特権である限り、コードが実行できることにはまったく制限がありません。 それは確かにファイルを削除したり、それらを変更したり、リモートサーバーに送信したりすることができます。 データベースに保存されているデータについても同様です。 プラグインがアクティブ化されると、それを停止することはできません。 したがって、 nullのプラグインやテーマは使用しないでください。ライブサイトに大ざっぱなプラグインをインストールする場合は、最初にバックアップを作成してください。

GPLダンプや違法サイトなどの大ざっぱなソースからプラグインやテーマをインストールすることは決して良い考えではありません。 ライブサイトにインストールする勇気がある場合は、最初にバックアップを作成してください。 または、さらに賢くしてください。ローカル、ステージングサイト、または大きなダメージを与えられない場所でテストしてください。

さて、より多くの日常的なものに。 プラグインをアクティブ化すると、プラグインは何をしますか? 大きいものはカスタムデータベーステーブルを作成します。 カスタムテーブルは一般的であり、プラグインが大量のデータまたはWPオプション(またはCPT)のキー値スキームに適合しないデータを格納する必要がある場合に予想されます。 ほとんどすべてのプラグインは、WPオプションAPIを利用してwp_optionsテーブルに新しい行を作成します。 完全に期待され、正常です。 予期されていない、または正常ではなく、決して発生しないはずのことは、12コアのWPテーブルの変更です。 WPコアファイルと同様に、コアテーブルはプラグインまたはユーザーによって編集されるべきではありません。 プラグインは、トランジェントの追加、カスタム投稿タイプの作成、ウィジェットとメニューの追加も行います。 それらはすべて、さまざまなWP APIを使用して実行され、データはコアテーブルに格納されます。

プラグインがどのような変更を加えるのか気にするのはなぜですか?

プラグインの品質や、速度や可用性など、プラグインがサイトに与えるさまざまな影響を気にしない場合は、心配する必要はありません。 管理している数十のサイトにプラグインがインストールされようとしていることを確認している場合は、プラグインがどのように構築され、「舞台裏」で何が行われるかに関心があるでしょう。 完全なコード監査を行うことは、何が起こっているかを知る唯一の完全な方法ですが、ほとんどのシナリオではそれが現実的ではないことを私は知っています。

プラグインやテーマが#WordPressサイトにどのような変更を加えたか知りたいですか? これらの変更を確認する方法をご覧ください。

クリックしてツイート

プラグインが行った変更を確認することで、プラグインがサーバーリソースをどのように使用しているか、コードがどの程度クリーンであるか、たとえばプラグインがプラグイン自体をどのようにクリーンアップするか(またはクリーンアップするかどうか)についての洞察が得られます。 また、よくある質問への回答にも役立ちます。「最近プラグインXをインストールしましたが、サイトの速度が低下していると思いますが、Xが原因ですか?

最後になりますが、確かに、変更について学ぶ重要な理由は、リバースエンジニアリングと学習です。 別のプラグインで見たものと同様のインストール手順が必要な場合や、プラグインがどのように機能するかを知りたがっている場合があります。

救助のためのデータベーススナップショット

データベーススナップショットは、WPが使用するのと同じデータベースに格納されている現在使用されているデータベーステーブルのコピーです。 スナップショットはバックアップと非常に似ていますが、異なる目的で作成されます。 バックアップは主に「whatif」シナリオ用に存在します。 一方、スナップショットの使用法はより顕著です。 スナップショットを作成するときは、テストを行った後でシステムを元に戻すか、データベースの2つのバージョンを比較するために使用する可能性があります。 Windowsの同様の概念は、復元ポイントと呼ばれます。

データベースのスナップショットは、その名前が示すように、データベースのみを処理することに注意してください。 ファイルは、他の方法でバックアップ、保存、比較、または修正されることはありません。

比較してみましょう!

比較を行うためのツールは必要ありません。 2つのバージョンのデータベースをダウンロードして比較することにより、手動で行うことができます。 しかし、それを数回行った後、私が座ってWPリセットのDBスナップショットを書いたのはとても不快な経験でした。 WPリセットを使用すると、数回クリックするだけで比較でき、技術的なノウハウは必要ありません。

1.WPリセットをインストールしてアクティブ化します

最速の方法は、WP Admin –プラグイン– Add Newを使用し、検索に「wpreset」と入力することです。 それが最初の結果になります。 または、最新バージョンのZIPを入手するか、wordpress.org / plugins /wp-reset/にアクセスしてください。

2.サイトの現在の状態のスナップショットを作成します

WP管理–ツール– WPリセットを開き、[DBスナップショット]タブに切り替えて、[新規作成]をクリックします。 新しいプラグインをテストする場合は、「プラグインXの前」のような名前を付けます。

Creating a DB snapshot takes only a few seconds
大規模なWPインストールでも、スナップショットの作成には数秒しかかかりません

3.サイトにいくつかの変更を加えます

新しいプラグインをインストールします。 新しいテーマをアクティブにします。 既存のプラグインまたはテーマにいくつかの変更を加えます。 コンテンツを作成します。 ウィジェットを台無しにする–行うほとんどすべての変更がサイトのデータベースに反映され、前と後の状態を比較できるようになります。

4.新しい状態を保存されたスナップショットと比較します

WPリセットスナップショットに戻り、保存されたスナップショットの横にある比較アイコンをクリックします。 データベーステーブルの色分けされたリストが表示されます。

緑のテーブルは、現在のデータベースとスナップショットに存在するテーブルであり、1ビットは変更されていません。 赤いものは、スナップショットから欠落している(作成されたばかりであることを意味する)か、現在のデータベースで欠落している(つまり、削除されたばかり)ものです。 オレンジ色のものは、データに関して、またはそれほど頻繁ではなく、スキームに関して変更されたものです。 いずれかのテーブルをクリックすると、変更に関する詳細が表示されます。

Changes after installing Yoast SEO
Yoast SEOをインストールした後、wp_optionsとwp_usermetaに2つの新しいテーブルといくつかの新しい行があります

5.表示される変更が気に入らないですか? それらを元に戻します!

スナップショットを作成したときの状態にサイトを戻す場合は、保存したスナップショットの横にある復元アクションを使用します。 データベースを以前の状態に戻し、すべての変更がなくなります。 迅速で痛みがありません。

Core tables should never be changed
プラグインはコアテーブルを変更しないでください。 それが発生した場合、WPリセットは詳細な差分を提供し、前のスナップショットに戻って変更を元に戻すことができます。

データベーススナップショットのその他のユースケース

変更の決定は、データベーススナップショットが開発とテストに役立つ多くの方法の1つにすぎません。 スナップショットに戻すことで、(問題のある)変更を行う前の状態でサイトをいつでも取得できます。 そして、それは2回のクリックと数秒の待機で完了します。 準備されたスナップショットに戻る特定のアクションの後に大幅に変更される複雑なテスト環境が必要な場合はいつでも、数秒以内に再テストできます。 必要に応じて、スナップショットをgzip圧縮されたSQLダンプとしてダウンロードすることもできます。 彼らの主な目的はライブサイトでバックアップを作成することではありませんが、ピンチでそれを行うこともできます。 詳細な差分は、変更されたテーブルスキーマとwp_optionsテーブルのデータで利用できます。 すべてのテーブルのユニバーサル差分は、次のバージョンのいずれかで使用できるようになります。

念のため、スナップショットを紹介するために作成した短いビデオを次に示します。