クライアントと #39; のショップでプラグインをスキャンし、3 つ戻ってきました。サイトは 26 個実行されていました。何も壊れず、意図的に隠されるものは何もありませんでした。最適化プラグインはすべてのスクリプトを 1 つの結合ファイルに統合しており、統合されたファイルにはプラグイン フォルダーがありませんでした。このスキャンは、ページが何をロードしているかについて正確であり、インベントリとしては役に立たず、これがこのガイドの特徴です。
サイトの外からプラグインを検出することは本当に有用で、本当に限られており、ほとんどのツールは前半しか教えてくれません 検出がどのように機能するか、それぞれの結果が何を意味し得、何を意味しないか、そして間違った結論を導き出すことなく短いリストを読む方法は次のとおりです WordPress プラグイン 検出器 両半期を意図的に報告します。
tl;dr: プラグインの検出は、から読み込まれたファイルを見つけることで機能します
/wp-content/plugins/<slug>/ページ内 フロントエンドファイルをロードしないものはすべて見えません: 管理者専用プラグイン、他のページで起動するプラグイン、およびキャッシュプラグインが1 つの結合ファイルにアセットをマージしたものはすべて、結果をフロアとして扱い、合計として扱うことはありません。 ホームページの代わりに内部ページをスキャンすると、確実にさらに多くのファイルが見つかります。
プラグイン検出は実際にどのように機能しますか?
目に見えることを何でもするプラグインは、自分のフォルダから何かをロードする必要があります. WordPressは固定パスからプラグインファイルを提供します, /wp-content/plugins/<slug>/、したがって、そこからロードされる任意のスタイルシート、スクリプトまたはイメージは、それを所有するプラグインに名前を付けます:
<link rel="stylesheet" href="/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=5.9.3" />
<script src="/wp-content/plugins/woocommerce/assets/js/frontend/cart-fragments.min.js?ver=9.2.3"></script>
それは contact-form-7 あんど woocommerce、それがどのように動作するかから推測されるのではなく、ページによって述べられています いくつかのプラグインは、自分自身をより明確にまだ発表します: ボディクラス、下のREST名前空間 /wp-json/、 メタタグ 、 HTML コメント 、 クッキー 名.
通常、バージョンはクエリ文字列内に含まれます。 ?ver=5.9.3 wordpress がキャッシュ破棄用に追加するもので、ほとんどのインストールでは plugin's の実際のバージョンです。キャッシュ上の理由でバージョンのクエリ文字列を削除したり、値をハードコードしたりしたサイトは、何も報告しないか、古いものを報告しません。
| 証拠 | 例 | 自信 |
|---|---|---|
| アセットパス | /wp-content/plugins/woocommerce/... |
プラグインはこのページにファイルをロードしました |
| バージョンクエリ文字列 | ?ver=9.2.3 |
通常、インストールされているバージョン |
| REST 名前空間 | /wp-json/wc/v3 |
プラグインが API ルートを登録しました |
| ボディクラス | woocommerce-page |
プラグインはこのページタイプでアクティブです |
なぜこれほど多くのプラグインが見えないままなのか?
4 つの通常のセットアップではプラグインが非表示になり、サイトが何か悪いことをしているとは限りません。
管理者専用プラグインは訪問者に何も読み込みません。 バックアップ スケジューラー、SEO エディター、移行ツール、ユーザー ロール マネージャー、ステージング ユーティリティ: 内部で作業を行います wp-admin そしてフロントエンドに何も追加しません。 任意の実際のsite& #39; sプラグインリストの大部分のシェアはこのカテゴリにあり、デザインによって外部から見えません。
プラグインは、その目的のページで起動します。 チェックアウト プラグインはチェックアウトにロードされます。フォーム プラグインはフォームのある場所でロードされます。ホームページをスキャンしてサイトに 3 つのプラグインがあると結論付けることは、本の最初のページを読んでその単語数を報告するようなものです。
最適化プラグインはフォルダー名を消去します。 これが大きなものです すべてのスクリプトとスタイルシートをキャッシュフォルダーの下の1 つのファイルに連結するプラグインは、それ自身を含む、マージしたすべてのプラグインフォルダー名を削除します コードはすべてまだ存在しています 証拠はそうではありません。
ホストと CDN はアセットパスを書き換えます。 一部のマネージド ホストは、含まれなくなったパスを介してすべての静的ファイルをプロキシします /wp-content/plugins/。同じ効果、サイト全体に一度に適用されます。
したがって、空の結果には少なくとも 5 つの意味があります。アクティブなプラグインがない、フロントエンド アセットをロードしない、オプティマイザーがそれらをマージした、ホストがパスを書き換えた、またはサイトが WordPress ではない。 "0 プラグイン&クォート; を分離せずにレポートするツールは、発見を報告せず、独自の死角を報告します。
実名のないフォルダ名とはどういう意味ですか?
検出すると slug が得られます。その slug を公開名、現在のバージョン、インストール数に変換するには、プラグイン ディレクトリと照合する必要があり、すべてのプラグインが 1 つに揃っているわけではありません。
裸の slug 該当するエントリーがないということは、ほとんどの場合、3 つのうちの1 つを意味します これは、WordPress.orgの外で販売されているプレミアムプラグインで、ほとんどの商用ページビルダー、フォームプラグイン、メンバーシップシステムについてカスタム、構築した人がその1 つのサイトのために書いたものです または、フォルダーの名前が単に変更されただけで、一部のサイト所有者は意図的に変更しています。
それ自体が便利なシグナルです。プラグイン リストがほとんど比類のないサイト slugs は商用またはオーダーメイドのソフトウェアを実行しており、誰かに質問する前に、その背後にある予算について何かを教えてくれます。
どうすればより完全な全体像を得ることができますか?
1 ページ以上スキャンする これは単一の最高値の習慣であり、それは何も費用がかかりません:
- サイト全体の家具のホームページ: 分析、同意バナー、ページ ビルダー、スライダー。
- コンテンツ側プラグイン用のブログ投稿: 関連投稿、目次、ソーシャル共有、コメント システム。
- 商品または価格ページ、コマース用: ショップ プラグイン、支払いゲートウェイ、通貨スイッチャー。
- フォーム、地図、スパム保護のための連絡先ページ。
組合を取ります。それでもそれはフロアですが、どのページよりもはるかに高いフロアです。
ザ・ /wp-json/ indexも有効になっている場合は一見の価値があります。 RESTルートを登録するプラグインは、フロントエンドがロードしたものに関係なく、名前空間によってそこに表示されるため、アセットパスが見逃しているものの一部をキャッチします:
curl -s https://example.com/wp-json/ | grep -o '"namespace":"[^"]*"' | sort -u
誰か& #39; のサイトをスキャンすることは許容されますか?
公開ページを読むことは普通のリクエストです。 site' s アクセスログにブラウザからの訪問とまったく同じように表示され、ログインも何も送信も管理領域に触れることもありません。 the WordPress セキュリティドキュメント ページがすべての訪問者に自発的に公開するものではなく、認証されたリクエストまたはプロービング リクエストで何ができるかに関係します。
鋭くなるのは意図です プラグインリストは、あなたがそれを使用する場合、偵察です: 既知の脆弱性を持つプラグインの古いバージョンは、攻撃者が探しているものとまったく同じです それは、誰もが同じページを読むことができるので、情報が秘密であるふりをする理由ではなく、あなた自身のプラグインを更新し続ける理由です あなたが所有していないサイトを監査している場合は、ページがあなたに言うことに固執し、そこにそれを残します。
結果が良いこと
制限内で使用される外部のプラグイン スキャンにより、実際の質問に迅速に回答します。このサイトが使用しているページ ビルダーはどれですか。変更点を引用できます。このショップは WooCommerce またはホストされているものですか。フォーム プラグインとは何ですか。一致させることができます。この競合他社は、私たちが実行しているのと同じ SEO スタックを実行しています。私自身のステージング サイトが誤ってプラグインをローカルでロードしている。
それができないことは、インベントリを生成することです そのために、管理者が必要です、 wp plugin list 上 WP-CLI、またはログインしている人.
何がページにロードされているかではなく、何がレンダリングされているかという問題がある場合、それは です WordPress テーマ検出器、これはtheme& #39; sの所有を読みます style.css 名前、バージョン、親の場合。そして、プラグインを公開しているときは、 readmeジェネレータ を書いています readme.txt これにより、プラグインと#39; 自身のディレクトリ リストがどのように読み込まれるかが決まります。



