New Relic Browserのセキュリティ
New Relic Browserのセキュリティ

New Relic Browserのセキュリティ

New Relic Browser製品は、ブラウザーにウェブサイトが読み込まれた際の挙動を深く洞察することができます。New Relic Browserは、このドキュメントに書かれている通り、パフォーマンスデータのみを収集します。また、明確に設定しない限りは、監視されているアプリケーションによって使われる、または格納されるいかなるデータも収集しません。このドキュメントは、ウェブアプリに対するNew Relic Browserのセキュリティについての説明となります。

レポートされるデータ

New Relic Browserは多くの異なるデータタイプをレポートし、ウェブサイトのパフォーマンスを分析する手助けをします。Pro機能を使わない限りは、New Relic Browserはページビューのデータのみをレポートします。また、AJAXリクエスト、JavaScriptエラー、そしてセッショントレースの機能を有効化することができます。
ほとんどのデータタイプにおいて、New Relic BrowserはSSLによって暗号化されたデータを安全に送信します。関連情報についてはデータの送信をご覧ください。

ブラウザーアプリケーションのモニタリング用のエージェントは、bam.nr-data.netのドメインを経由してNew Relicのデータ収集サーバーにデータを送信します。

下記は、New Relic Browserによってレポートされるデータタイプの概要となります。

ページビューデータ

このデータはページビューごとに一度送信され、構成するデータは以下となります:

  • ページ読み込みのタイミングデータ
  • (可能な場合)ページを提供するサーバー側のアプリコントローラーの名前(送信中にページ内では難読化されます)
  • (ページ読み込みに先立って設定されている場合)BrowserエージェントAPIによってセットされている追加のカスタムパラメータ
  • この情報はPage viewsページに表示されます。

サーバー側のデータは、サーバーがNew Relicによってインストルメント化された場合にのみ収集され、ブラウザーモニタリングはエージェントで行います。New Relicのデータ収集や表示の方法についての関連情報は、ページ読み込みのタイミングをインストルメント化するをご覧ください。

AJAXのタイミングデータ

有効になっている場合は、New Relic Browserはユーザーがサイトを移動したりページを閉じるまでは継続的にAJAXのタイミングデータをレポートします。(New Relicは、2分以上の全てのAJAXリクエストを自動的に遮断します。)また、データには下記が含まれます:

  • AJAXがリクエストするURLのホストネーム、ポート、パス(サーチ/クエリパラメータは含まれません)
  • 応答に関するHTTPのステータスコード
  • リクエストメッセージのボディのデータサイズ
  • ブラウザーのインストルメンテーションがNew Relic agentによって行なわれている場合における、AJAXリクエストおよびサーバー側のタイミングデータ(データの送信中にページ内では難読化されます)を提供するサーバー側のコントローラーの名前
  • AJAXトランザクションにおけるタイミングデータ
  • AJAXコールバックにおけるタイミングデータ

JavaScriptのエラーデータ

有効になっている場合は、New Relic Browserはユーザーがサイトを移動したりページを閉じるまでは、起こっているすべてのエラーを定期的にレポートします。この情報はJavaScriptエラーのページに表示されます。
各エラーに関するデータは下記を含みます:

  • エラーの例外クラス
  • 任意のテキストを含むエラーメッセージ
  • エラーの原因となっている機能名やスクリプトのURLを含む可能性があるエラーのスタックトレース

エラーメッセージは、多くの場合機密情報を含むことはありません。しかしながら、機密情報を伴うメッセージを意図的に構成することは可能です。JavaScriptのエラーレポートを有効化する前に、Webサイトがエラーメッセージの情報がいかなる機密情報をも開示していないことを確認してください。

セッショントレースのデータ

有効になっている場合は、New Relic Browserはユーザーがサイトを移動したりページを閉じるまではユーザーインタラクション、AJAX読み込みやJavaScriptのエラーなど、シングルページアプリのライフサイクルに関する情報を定期的にレポートします。New Relicは、10分後にはそれ以上のデータの記録を自動的に停止します。含まれるデータは:

  • アセット読み込みのタイミング詳細
  • スクロール、マウス操作、クリックなどのユーザーのインタラクション
  • JavaScriptエラーのタイミング、その他のJavaScriptの情報
  • トリガーされたJavaScriptのイベント

セッショントレースは、監視しているページッビュー内から一定の間隔でランダムに取り込まれ、その情報はセッショントレースページに表示されます。

SPAデータ

上記のデータに加えて、New Relicのシングルページ アプリケーション(SPA)モニタリングをお使いであれば、ページ読み込みやルート変更毎に一度、このデータがレポートされます:

  • ルート変更に伴うハッシュの断片
  • SPA APIで追加されたカスタムパラメータ

SPAモニタリングが有効になると、情報はページビューページに表示されます。
ページビューのタイミングデータと同様に、サーバー側のデータはNew Relicによってサーバーがインストルメント化されている場合にのみデータは収集され、またブラウザーモニタリングのインストルメンテーションはエージェントによって行なわれます。New Relicのデータ収集や表示の方法についての関連情報は、ページ読み込みのタイミングをインストルメント化するをご覧ください。

URLクエリのストリング

Browserエージェントは、ページのURLを追跡する際にはリファラの属性を使用します。URLはユーザー名などの機密情報を含む場合があります。データのセキュリティの観点から、BrowserはURLクエリのストリングの記録、収集を行いません。

ブラウザーの種類

New Relic Browserは「User-Agent」ヘッダーからブラウザーの種類を、またブラウザーのIPアドレスから地域を認識します。New RelicはIPアドレスを保持せず、パフォーマンスデータに関連する国や地域のみを保持します。
この情報は、選択したアプリのGeography ページに表示されます。また、特定のブラウザーの種類に関する情報は、選択したアプリのBrowsers pageに表示されます。

ブラウザートレースの詳細

選択したアプリとその Page viewsページから、ブラウザートレースを選択できます。New Relicがブラウザートレースをキャプチャーすると、IPアドレス(取得が可能な場合)に関連した都市名が含まれます。ブラウザートレースの詳細 Page viewsページに表示されます。ウェブページのライフサイクル中の読み込みやインタラクションイベントの詳細なタイムラインを提供するBrowser Proをお使いの場合は、ブラウザートレースはブラウザーのセッショントレースがその機能を内包します。

CDNアクセス

ページ読み込みのタイミングは、New RelicのJavaScriptファイル(nr.js)がホストされているコンテンツデリバリネットワーク(CDN)へのアクセスが必要となります。 (js-agent.newrelic.com)ファイルに対するドメイン名は静的なまま保たれますが、パス(バージョン)内の数字は定期的に変更されます。
スクリプトのタグはNew Relicエージェントによって取り込まます(またはスタンドアローンのアプリのウェブページにペーストされます)。これはCDN上のJavaScriptを参照し、続いてブラウザーによって読み込まれます。読み込まれたJavaScriptは、メトリクスを収集し動的にbam.nr-data.netドメインにレポートします。

エンドユーザーがファイアーウォールやプロキシを設定いるためにCDNやbam.nr-data.netを含むNew Relicのネットワークへのアクセスができない場合はNew Relic Browserは機能しません。New Relicへのデータ送信のためのサーバーの場所やIPアドレスについての関連情報はネットワークをご覧ください。

クッキー

New Relic Browswerはクッキーをエンドユーザーのブラウザーに作成します。ユーザーがクッキーを無効化している場合は、ページ読み込みのタイミング(リアルユーザーモニタリングまたはRUMとも呼ばれます)は正しくセッションを追跡することができません。また、ユーザーが Navigation Timing Specification APIをサポートしていない古いブラウザーを使っている場合も、ページ読み込みのタイミングは応答時間を正確に追跡することができません。ブラウザーモニタリングのためのNew Relicクッキーは、セキュアな属性を含みません。これは、ページ読み込みのタイミングの送信が、そのページがHTTPならばHTTPで、またページがHTTPSであればHTTPSで送信されるためです。関連情報はデータの送信をご覧ください。
JavaScriptとAJAXデータはより機密性の高い情報を含んでいる可能性がありますので、それは常にHTTPS経由で送信されます。こうしたクッキーをHTTP経由で送信したり、JavaScriptでそうしたデータにアクセスすることで重大なセキュリティリスクとなることはありません。その理由はクッキーは機密性の高い決定を行ったりアカウントへのアクセスを許可するようなことはないためです。クッキーはパフォーマンスデータの収集のためだけに使われ、識別可能なデータはすべて難読化されます。

サイトがP3Pを使っている場合は、これらのクッキーを許可するように設定する必要があります。

JSONPのリクエスト

ページ読み込みのタイミングのメトリクスは、JSONPリクエストとしても知られているGETスクリプトを使ってNew Relic にレポートされます。GETスクリプトはクッキーに次々に保存される値を返し、またトレースのキャプチャーをトリガーするために使われます。

関連情報

追加のドキュメンテーションリソースは次の通りです:

  • セキュリティ(New Relicのセキュリティ対策に関する追加情報)
  • New Relicのコーポレート セキュリティサイト(企業情報とビデオ)

New Relicのオンライン テクニカル コミュニティでBrowserを使ったモニタリングについて議論しましょう!トラブルシューティングや質問をしたり、Java ScriptエラーのレポートAJAXタイミングの詳細を話し合うことができます。