当社のには、ブラウザ監視機能を備えた堅牢なスタンドアロン製品を提供するための厳格なセキュリティ対策が組み込まれています。 Browseragent をインストールする前に、システムがこれらの要件を満たしていることを確認してください。
基本要件
New Relic にデータをレポートするには、アプリケーションが次の 2 つの基本要件を満たしている必要があります。
- アプリケーションへのトラフィックは、ブラウザーの JavaScript コードをロードして実行できるクライアントからのものである必要があります。
- アプリケーションにアクセスするクライアントは、HTTP リクエストを通じて New Relic にデータを送信できる必要があります。HTTPS は、より高度なブラウザ監視機能に必要です。
重要
切断リストに登録しているブラウザや、AdBlock などのコンテンツ フィルタリング拡張機能を使用しているブラウザは、New Relic にデータをレポートできない場合があります。たとえば、 Mozilla Firefox 69.0 以降で 強化されたトラッキング防止切断リストを 使用している場合は、デフォルト設定を変更する必要があります。
ほとんどの一般的なブラウザ アプリケーションはこれらの要件を満たしていますが、制限された環境の一部のブラウザ アプリケーションでは New Relic にデータを報告することが困難な場合があります。例えば:
- ハイブリッド・モバイル・アプリケーション
- POS端末や家電製品などの特殊なハードウェアにインストールされるアプリケーション
詳細については、 ブラウザ監視のドキュメントを参照し、 エンドユーザーのネットワーク アクセスを確認してください。
対応ブラウザ
ブラウザ エージェントは、次のブラウザ バージョンを公式にサポートしています。
インストルメンテーションおよび特定の機能は、他のブラウザーまたはバージョンと互換性がある場合があります。
Exceptions | Comments |
---|---|
塗装のタイミング |
|
AJAX | AJAXのタイミング機能 では利用できません。
|
|
|
セッション・トレース | セッショントレース は、 Resource Timing Specification をサポートしているブラウザからのみ報告されます。 |
SHA-256 | New Relic は SHA-256 と互換性のあるブラウザのみをモニターすることができます。 |
重要
Cookieでブラウザ監視を使用する場合、New RelicのCookieはサイト上のサードパーティのCookieであり、訪問者が使用する特定のWebブラウザに保存または機能しない場合があります。サードパーティのCookieとの互換性の詳細については、該当するブラウザのWebサイトを参照してください。
APMエージェント
アプリの ブラウザ監視を展開する 1 つの方法は、APM エージェントの 1 つを使用することです。
すでに APM によって監視されているアプリのブラウザをデプロイしている場合は、APM エージェントのバージョンがブラウザ監視をサポートしていることを確認してください。
- Go: バージョン2.5.0以上
- Java: バージョン3.4.0以上
- .NET: バージョン2.20.25.0以上
- Node.js: バージョン1.4.0以上
- PHP: バージョン4.4.5.35以上
- Python: バージョン 2.10.1.9 以上
- Ruby: Version 3.7.0.177 以上
サポートされているフレームワークとライブラリ
ブラウザ エージェントは、多くの一般的なフロントエンド フレームワークとライブラリを使用するサイト上のデータを収集します。ブラウザ エージェントは、他のライブラリやフレームワークによってラップまたは変更される可能性がある、低レベルの JavaScript オブジェクトおよびメソッドを監視します。その結果、収集される詳細レベルはフレームワークごとに異なる可能性があり、ネイティブ JavaScript メカニズムを変更するライブラリと競合が発生する可能性があります。
互換性の例外 | コメントコメント |
---|---|
Zone.js | AngularJS を使用しており、 SPA 監視機能を使用する場合は、Zone.js バージョン 0.6.18 から 0.6.24 はブラウザーと互換性がないことに注意してください。 いずれの場合も、エラーを回避するために、Browseragent mustを Zone.js の前に読み込む必要があります。 |
Cypress.io(サイプレス・アイオー | サイプレスでテストを実行すると、ブラウザはリクエストの
これは、コード内に存在するブラウザ エージェントを使用してテストを実行しているお客様にのみ影響します。本番アプリケーションは影響を受けません。 |
html2pdf.js | このライブラリは、約束事の包み方が異なるため、弊社の Pro+SPA エージェント とは互換性がありません。このライブラリを使用する場合は、 Pro エージェントタイプ を選択することをお勧めします。 |
ムーツール | ブラウザ エージェントは、 |
シングルページアプリケーション(SPA)の監視
シングル ページ アプリ (SPA) の監視に関連する機能を使用するには、アプリが次の要件を満たしている必要があります。
SPA: ブラウザエージェントのバージョン
SPA モニタリングには 、ブラウザ エージェント バージョン 885 以降で利用可能な、SPA 固有のバージョンのブラウザ スニペットが必要です。このバージョンのエージェントはデフォルトで有効になっています。
SPA: ブラウザの種類
SPA モニタリングには、 addEventListener
ブラウザ API と Navigation Timing APIが必要です。 両方の API は、Google Chrome、Mozilla Firefox、Apple Safari、Microsoft Internet Explorer (IE) バージョン 9 以降など、最新のすべてのブラウザーで利用できます。
SPA: フレームワーク要件
SPAインスツルメンテーションは、低レベルのブラウザAPIをラップして動作するため、フレームワークに依存しません。SPAインスツルメンテーションは、Angular、Backbone、Ember、Reactなど、ほとんどのSPAフレームワークと互換性があります。また、JSONPを使用したリクエストの計測も可能です。
以下は、既知の互換性の問題です。
- アプリケーションに AngularJS を使用しており、ブラウザの SPA モニタリング の機能を使用したい場合、Zone.js のバージョン 0.6.18-0.6.24 は SPA エージェントとの互換性がありません。
- html2pdf.jsライブラリは、SPAエージェントと互換性がありません。
- Angular バージョン 12 から 14 には、インデックス HTML ソース内に含まれる個々のスクリプト要素のサイズに関する制限が含まれています。詳細については 、このトラブルシューティング ページ を参照してください。
- Next.JS には、バージョン 13.3.2-canary.2 以降、既知の非互換性があります。アプリルーターを使用すると、ページ上のリンクが機能しなくなる可能性があります。詳細については 、このトラブルシューティング ページ を参照してください。
SPA: ハッシュ フラグメントのセキュリティ
ルート変更 URL からハッシュ フラグメントを収集して保存します。ハッシュを使用してプライベート データや機密データを渡す場合、そのデータは New Relic アカウント ユーザーに表示される可能性があります。 データ収集とレポートのセキュリティに関するブラウザのガイドラインに従ってください。
コンテンツ・セキュリティ・ポリシー(CSP)の考慮事項
正確なブラウザ パフォーマンス メトリクスを取得するために、ブラウザ監視では小さなインライン JavaScript スニペットを使用する必要があります。New Relic は、クロスサイト スクリプティング (XSS) やその他の潜在的な脆弱性を防ぐために、インライン JavaScript を注意深くレビューします。
Content Security Policy Level 2 インラインスクリプトなど、許可されるJavaScriptの種類に制限を加えています。また、ページロード時にスクリプトをロードできるドメインを制限します。
重要
お客様のWebサイトでサードパーティがホストするJavaScriptの実行が許可されていない場合は、ブラウザ監視エージェントをインストールするために、組織の標準的な手順でCSPの例外を申請する必要があります。
CSP 例外をリクエストする場合は、組織の標準手順に従って、Web チームまたはセキュリティ チームに連絡してください。ユースケースの CSP 例外は、現在実行しているブラウザー エージェントのバージョンによって異なります。ブラウザ エージェントの最新バージョンに更新することを常にお勧めします。
これらの例外はすべて、( script-src
とconnect-src
の代わりに) フォールバックdefault-src
ディレクティブに追加できます。ブラウザ エージェントには次の CSP 例外が必要です。
CSPの例外 | コメントコメント |
---|---|
|
|
|
|
| エージェントは
|
nonce
サポート
ブラウザ エージェント1.247.0以降、エージェントは追加のコード チャンクを読み込むときに、インライン スクリプトに付加されたnonce
属性を尊重します。サイトまたはインフラストラクチャがインライン ブラウザ エージェント スクリプトにnonce
属性を挿入できる場合は、 connect-src
に対する CSP 例外をリクエストするだけで済みます。
重要
統合されたnonce
サポートは、ブラウザ エージェントの npm パッケージの使用には適用されません。npm パッケージを使用すると、エージェントはサイトまたはアプリのコードの一部になります。追加のチャンクのロードはアプリ コードを通じて行われ、 nonce
属性をいつ使用するか、使用するかどうかを完全に制御できます。
ブラウザ エージェントを挿入できる一部の APM エージェントは、挿入されたスクリプトへのnonce
属性の追加もサポートしています。
APMエージェント | 最小バージョン | サポートノート |
---|---|---|
Go |
| |
Java |
| |
.NET |
| |
Node.js |
| |
Ruby |
|
プロキシサポート
重要
この機能は現在、コピー/ペーストまたは npm ブラウザーのインストール方法を使用しているユーザーが利用できます。現在、利用可能な UI または NerdGraph 構成オプションはありません。私たちは、これらおよびその他の構成オプションへのアクセスを改善するために引き続き取り組んでいます。
ブラウザ エージェント1.240.0以降では、制御する別のドメインとパスの組み合わせを通じてネットワーク要求をプロキシするようにエージェントを構成できます。プロキシ構成と CSP 設定によっては、New Relic ドメインをscript-src
およびconnect-src
に追加するための例外をリクエストする必要がない場合があります。エージェントの構成ガイドなどの詳細については、プロキシのドキュメントを参照してください。
サブリソースの完全性 (SRI)
ブラウザ エージェントはコード分割を利用して、コードのインライン スニペットを可能な限り小さくします。エージェントが機能するために必要な追加コードは、実行時にコンテンツ配信ネットワーク (CDN) からロードされます。追加のセキュリティ層として、ブラウザ エージェント1.247.0以降、エージェント スニペットには、実行時にロードされる可能性のあるすべての追加コード チャンクのハッシュが含まれています。これらのハッシュは、CDN からロードされたコードが、CDN 上または中間者攻撃による転送中に意図せずに変更されていないことを確認するためにブラウザーによって使用されます。
重要
SRI ハッシュは、ブラウザー エージェントの npm パッケージの使用には適用されません。npm パッケージを使用すると、エージェントがサイトまたはアプリのコードの一部となり、生成されたハッシュが無効になります。
SRI セキュリティの仕組みの詳細については、この MDN 記事を参照してください。