Suporte/Solução de problemas
Solução de problemas

Script do Flowsery Analytics bloqueado pela Content Security Policy (CSP)

Se adicionou o snippet de rastreamento do Flowsery Analytics mas nenhum pageview está a aparecer, os cabeçalhos de Content Security Policy (CSP) do seu site estão muito provavelmente a impedir o carregamento.

Diagnosticar um problema de CSP

  1. Abra o seu site no Chrome ou Firefox
  2. Abra as DevTools (F12 ou Cmd+Shift+I)
  3. Mude para o separador Console
  4. Procure um erro semelhante a:
HTML
Refused to load the script 'https://cdn.flowsery.com/main.js' because it violates the following Content Security Policy directive: "script-src 'self'"
```html Ver esta mensagem confirma que as regras CSP estão a impedir a execução do script do Flowsery Analytics. ## Compreender a Content Security
Policy Uma CSP é um cabeçalho HTTP que instrui os navegadores sobre quais recursos externos (scripts, stylesheets, imagens, etc.) são permitidos
carregar numa página. Quando `analytics.flowsery.com` não está incluído na política, o navegador bloqueia silenciosamente o script -- resultando em
nenhuns dados recolhidos. ## Resolver o problema Adicione `analytics.flowsery.com` à diretiva `script-src` dentro do seu cabeçalho CSP. Os passos
específicos variam por plataforma. ### Next.js Atualize o cabeçalho `Content-Security-Policy` dentro do seu `next.config.js`: ```js const
ContentSecurityPolicy = ` script-src 'self' 'unsafe-inline' 'unsafe-eval' https://cdn.flowsery.com; `; module.exports = { async headers() { return [ {
source: '/(.*)', headers: [ { key: 'Content-Security-Policy', value: ContentSecurityPolicy.replace(/\n/g, ''), }, ], }, ]; }, }; ```html ### Vercel
(vercel.json) ```json { "headers": [ { "source": "/(.*)", "headers": [ { "key": "Content-Security-Policy", "value": "script-src 'self' 'unsafe-inline'
https://analytics.flowsery.com;" } ] } ] } ```bash ### Netlify (\_headers file) ```html /* Content-Security-Policy: script-src 'self' 'unsafe-inline'
https://analytics.flowsery.com; ```html ### Tag meta HTML Quando não consegue modificar cabeçalhos do servidor, uma tag meta dentro do `<head>
  ` é uma alternativa: ```html
  <meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline' https://cdn.flowsery.com;" />
</head>

Note que esta abordagem só tem efeito quando nenhum cabeçalho CSP ao nível do servidor está presente -- os cabeçalhos do servidor sempre substituem as tags meta.

Nginx `nginx add_header Content-Security-Policy "script-src 'self' 'unsafe-inline' https://cdn.flowsery.com;"

always; `html

Apache (.htaccess) `apache Header set Content-Security-Policy "script-src 'self' 'unsafe-inline'

https://analytics.flowsery.com;" `html

WordPress Se utiliza um plugin de segurança como WP Cerber, Sucuri ou Wordfence, navegue

até às definições de CSP ou "HTTP headers" e adicione https://analytics.flowsery.com à lista de fontes de script permitidas. Quando o seu tema configura CSP diretamente no functions.php: php header("Content-Security-Policy: script-src 'self' 'unsafe-inline' https://analytics.flowsery.com;"); bash

A executar atrás de um proxy? Se configurou um proxy para o Flowsery Analytics, o script é servido a

partir do seu próprio domínio. Nesse cenário, 'self' na sua CSP já o permite, portanto não devem ser necessárias alterações adicionais. Se os problemas persistirem após o proxy, verifique que o endpoint do proxy está no mesmo domínio que o seu website.

A usar connect-src? Se a sua CSP

também limita connect-src (que controla para onde o navegador pode enviar dados via fetch/XHR), inclua analytics.flowsery.com nessa diretiva também:

HTML
 
</head>

Ainda com problemas?

  • Confirme que está a modificar o cabeçalho CSP ativo. Certos provedores de hospedagem ou CDNs podem substituir cabeçalhos.
  • Procure múltiplos cabeçalhos CSP -- os navegadores aplicam a combinação mais restritiva de todos os cabeçalhos presentes.
  • Limpe a cache do navegador e teste novamente numa janela privada/incógnita.
  • Quando utilizar um proxy, certifique-se de que tanto script-src como connect-src incluem o seu domínio de proxy.