Nosso inclui medidas de segurança rigorosas para fornecer um produto robusto e independente com monitoramento de recursos do browser. Antes de instalar o agente browser, certifique-se de que seu sistema atenda a esses requisitos.
Requisitos básicos
Para reportar dados à New Relic, seu aplicativo deve atender a dois requisitos básicos:
- O tráfego para o aplicativo deve ser proveniente de clientes capazes de carregar e executar o código JavaScript do browser.
- Os clientes que acessam o aplicativo devem ser capazes de enviar dados para a New Relic por meio de solicitações HTTP. HTTPS é necessário para o monitoramento mais avançado do recurso do browser.
Importante
Browsers que assinam uma lista de desconexão ou que usam extensões de filtragem de conteúdo, como AdBlock, podem não conseguir reportar dados à New Relic. Por exemplo, se você estiver usando a lista de desconexão do Enhanced Tracking Prevention para Mozilla Firefox 69.0 ou superior, será necessário alterar a configuração padrão.
A maioria dos aplicativos de browser típicos atendem a esses requisitos, mas alguns aplicativos de browser em ambientes restritos podem ter dificuldade em relatar dados à New Relic. Por exemplo:
- Aplicativo mobile híbrido
- Aplicativo instalado em hardware incomum, como terminais de ponto de venda ou dispositivos de consumo
Para obter mais informações, revise a documentação da instrumentação para monitoramento do browser e, em seguida, verifique o acesso à rede do usuário final.
Browser compatível
O browser agente suporta oficialmente as seguintes versões de browser:
- Chrome (10 versões anteriores)
- Safari (10 versões anteriores)
- Firefox (10 versões anteriores)
- Edge (10 versões anteriores)
Instrumentação e recurso específico podem ser compatíveis com outros browsers ou versões.
Exceptions | Comments |
|---|---|
Tempos de pintura | O atributo
|
AJAX | Os recursos de temporização AJAX não estão disponíveis com:
|
|
|
Rastreamento da sessão | trace da sessão são reportados somente a partir de browsers que suportam a Especificação de Tempo de Recursos. |
SHA-256 | A New Relic só pode monitor browsers compatíveis com SHA-256. |
Agentes APM
Uma forma de implantar o monitoramento de Browser para uma aplicação é utilizando um de nossos agentes APM.
Se você estiver implantando browser para um aplicativo que já está sendo monitorado pelo APM, certifique-se de que a versão do seu agente APM suporta monitoramento de browser:
- Ir: Versão 2.5.0 ou superior
- Java: Versão 3.4.0 ou mais alto
- .NET: Versão 2.20.25.0 ou superior
- Node.js: versão 1.4.0 ou superior
- PHP: Versão 4.4.5.35 ou superior
- Python: Versão 2.10.1.9 ou mais alto
- Ruby: Versão 3.7.0.177 ou superior
Estrutura e biblioteca suportadas
O agente browser coleta dados em sites que usam muitas bibliotecas e estruturas de front-end populares. O agente browser monitora objetos e métodos JavaScript de baixo nível, que podem ser agrupados ou modificados por outra biblioteca e framework. Como resultado, o nível de detalhe coletado pode variar de uma framework para outra, e podem ocorrer conflitos com qualquer biblioteca que modifique a mecânica nativa do JavaScript.
Exceções de compatibilidade | Comentários |
|---|---|
Zone.js | Se você estiver usando AngularJS e quiser usar nosso recurso de monitoramento SPA, observe que as versões 0.6.18 a 0.6.24 do Zone.js não são compatíveis com o browser. Em todos os casos, o agente browser must deve ser carregado antes do Zone.js para evitar erros. |
Cypress.io | O browser não consegue instrumentar adequadamente os métodos Isso afetará apenas os clientes que executam testes com o browser agente presente em seu código. O aplicativo de produção não deve ser afetado. |
html2pdf.js | Esta biblioteca não é compatível com nosso agente Pro+SPA devido à maneira como esta biblioteca envolve promessas. Se você estiver usando esta biblioteca, recomendamos selecionar o tipo de agente Pro. |
MooTools | O browser agente não é compatível com versões do MooTools anteriores a |
Prototype.js | O navegador do browser não é compatível com Prototype.js devido à modificação de objetos e protótipos JavaScript nativos feita pela biblioteca. Isso pode causar conflitos com a funcionalidade do agente e resultar em erros de JavaScript, como |
Monitoramento de aplicativo de página única (SPA)
Para usar o recurso relacionado ao monitoramento de aplicativos de página única (SPA), seu aplicativo deve atender a estes requisitos.
SPA: versão do agente browser
O monitoramento do SPA requer uma versão específica do SPA do trecho do browser, disponível para o agente do browser versão 885 ou superior. Esta versão do agente está habilitada por padrão.
SPA: tipos de browser
O monitoramento do SPA requer a API do BrowseraddEventListener e a API Navigation Timing. Ambas API estão disponíveis em todos os browsers modernos, incluindo Google Chrome, Mozilla Firefox, Apple Safari e Microsoft Internet Explorer (IE) versões 9 ou superior.
SPA: requisitos framework
Como a instrumentação SPA funciona agrupando API do browser de baixo nível, ela é independente framework . A instrumentação SPA é compatível com a maioria das estruturas SPA, como Angular, Backbone, Ember e React. Também pode instrumentar solicitações feitas usando JSONP.
Abaixo estão os problemas de compatibilidade conhecidos:
- Se seu aplicativo usa AngularJS e você deseja usar os recursos de monitoramento SPA do browser, as versões 0.6.18-0.6.24 do Zone.js não são compatíveis com o agente SPA.
- A biblioteca html2pdf.js não é compatível com o agente SPA.
- As versões Angular 12 a 14 contêm uma limitação em torno do tamanho dos elementos de script individuais contidos na fonte HTML do índice. Consulte esta página de resolução de problemas para obter mais informações.
- Next.JS tem uma incompatibilidade conhecida desde a versão 13.3.2-canary.2 onde o uso do roteador do aplicativo pode fazer com que os links da página não funcionem. Consulte esta página de resolução de problemas para obter mais informações.
SPA: Segurança para aplicar fragmentos de hash
Coletamos e salvamos fragmentos de hash aplicados de URLs de mudança de rota. Se você usar aplicar hash para passar dados privados ou confidenciais, esses dados poderão ficar visíveis para o usuário da sua conta New Relic. Siga as diretrizes de segurança do browser com coleta de dados e relatórios.
Considerações sobre a Política de Segurança de Conteúdo (CSP)
Para obter métricas precisas de desempenho do browser, nosso monitoramento de browser requer o uso de um pequeno trecho JavaScript embutido. A New Relic analisa cuidadosamente o JavaScript embutido para evitar scripts entre sites (XSS) e outras vulnerabilidades potenciais.
A Política de Segurança de Conteúdo Nível 2 adiciona restrições aos tipos de JavaScript permitidos, como script embutido. Também limita qual domínio pode carregar script durante o carregamento da página.
Importante
Se o seu site não permitir a execução de JavaScript hospedado por terceiros, você deverá solicitar uma exceção CSP por meio dos procedimentos padrão da sua organização para instalar o agente de monitoramento do browser.
Ao solicitar uma exceção de CSP, siga os procedimentos padrão da sua organização para entrar em contato com a equipe da Web ou de segurança. As exceções de CSP para seu caso de uso dependem da versão do agente browser que você está executando atualmente. Recomendamos sempre atualizar para a versão mais recente do agente browser.
Você pode adicionar todas essas exceções à diretiva substituta default-src (em vez de script-src e connect-src). O agente browser requer as seguintes exceções de CSP:
Exceção CSP | Comentários |
|---|---|
| Adicione à diretiva |
| Adicione à diretiva |
| O agente tenta enviar carga para subdomínios de
|
nonce
A partir do agente browser 1.247.0, o agente respeitará um atributo nonce anexado ao script embutido ao carregar blocos de código adicionais. Se o seu site ou infraestrutura for capaz de injetar um atributo nonce no script do agente browser embutido, você só precisará solicitar uma exceção CSP para connect-src.
Importante
Nosso suporte integrado nonce não se aplica ao uso do pacote npm do browser agente. Com o pacote npm, o agente passa a fazer parte do código do seu site ou aplicativo. Quaisquer blocos adicionais carregados serão feitos por meio do código do seu aplicativo e você terá controle total sobre quando e se um atributo nonce será usado.
Alguns APM de agente capazes de injetar o agente browser também suportam a adição de um atributo nonce ao script injetado.
Agente APM | Versão mínima | Nota de suporte |
|---|---|---|
Go | Oferece suporte à injeção do trecho JavaScript por meio da API | |
Java | Suporta adição de | |
.NET | Suporta adição | |
Node.js | Suporta adição | |
Ruby | Suporta adição |
Suporte de proxy
Importante
Este recurso está disponível atualmente para aqueles que usam os métodos de instalação do browser copiar/colar ou npm. Atualmente não há opções de interface ou configuração do NerdGraph disponíveis. Continuamos trabalhando para melhorar o acesso a essas e outras opções de configuração.
A partir do agente browser 1.240.0, o agente pode ser configurado para fazer proxy de solicitações de rede por meio de outra combinação de domínio e caminho que você controla. Dependendo da configuração do proxy e das configurações do CSP, talvez você não precise solicitar exceções para adicionar domínios New Relic a script-src e connect-src. Confira nossos documentos sobre proxy para obter mais informações, incluindo um guia sobre como configurar o agente.
Integridade de Sub-Recursos (SRI)
O browser agente utiliza divisão de código para tornar o snippet de código embutido o menor possível. O código adicional necessário para o agente funcionar é carregado em tempo de execução de nossa rede de entrega de conteúdo (CDN). Como uma camada adicional de segurança, começando com o agente browser 1.247.0, o trecho do agente contém aplicar hash de todos os pedaços de código adicionais que podem ser carregados durante o tempo de execução. Esses hash aplicados são usados pelo browser para verificar se o código carregado do CDN não foi modificado acidentalmente, seja no CDN ou durante o trânsito por meio de um ataque man-in-the-middle.
Importante
SRI aplicar hash não se aplica ao uso do pacote npm do browser agente. Com o pacote npm, o agente passa a fazer parte do código do seu site ou aplicativo, tornando inválido o hash aplicar gerado.
Para obter mais informações sobre como funciona a segurança SRI, consulte este artigo do MDN.