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
- Abra o seu site no Chrome ou Firefox
- Abra as DevTools (F12 ou Cmd+Shift+I)
- Mude para o separador Console
- Procure um erro semelhante a:
Refused to load the script 'https://cdn.flowsery.com/main.js' because it violates the following Content Security Policy directive: "script-src 'self'"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:
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, ''),
},
],
},
];
},
};{
"headers": [
{
"source": "/(.*)",
"headers": [
{
"key": "Content-Security-Policy",
"value": "script-src 'self' 'unsafe-inline' https://analytics.flowsery.com;"
}
]
}
]
}/*
Content-Security-Policy: script-src 'self' 'unsafe-inline' https://analytics.flowsery.com;Tag meta HTML
Quando não consegue modificar cabeçalhos do servidor, uma tag meta dentro do <head> é uma alternativa:
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline' https://cdn.flowsery.com;" />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
add_header Content-Security-Policy "script-src 'self' 'unsafe-inline' https://cdn.flowsery.com;" always;Header set Content-Security-Policy "script-src 'self' 'unsafe-inline' https://analytics.flowsery.com;"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:
header("Content-Security-Policy: script-src 'self' 'unsafe-inline' https://analytics.flowsery.com;");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:
Content-Security-Policy: script-src 'self' https://cdn.flowsery.com; connect-src 'self' https://analytics.flowsery.com;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-srccomoconnect-srcincluem o seu domínio de proxy.