Esqueci de editar o CSP ao adicionar código de rastreamento via componente personalizado

Tentei adicionar

em </head>

<!-- Matomo - head -->
<script type="text/discourse-plugin" version="0.2">
    // Rastrear visualizações de página 
    api.onPageChange((url, title) => {
        if (_paq) {
            try {
                var currentUser = PreloadStore.get('currentUser');
                _paq.push(['setCustomVariable', 3, 'Forum status', !currentUser ? 'Anonymous' : 'LoggedIn user', 'visit']);
            } catch(e) {} 
              
            _paq.push(["setCustomUrl", url]);
            _paq.push(["setDocumentTitle", title]);
            _paq.push(["trackPageView"]);
        }
    });
</script>
<!-- /Matomo - head -->

e então em </body>

<!-- Matomo -->
<script type="text/javascript">
  var _paq = window._paq = window._paq || [];
  /* métodos de rastreamento como "setCustomDimension" devem ser chamados antes de "trackPageView" */
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="https://stats.xxxxxxx.xxx/";
    _paq.push(['setTrackerUrl', u+'matomo.php']);
    _paq.push(['setSiteId', '8']);
    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
    g.type='text/javascript'; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
  })();
</script>
<!-- End Matomo Code -->

E tudo o que obtenho é que o código-fonte HTML da página contém apenas os comentários HTML. As tags <script> parecem ter sido removidas.
Existe alguma configuração de segurança que precise ser ativada para permitir scripts nessas áreas?

<!-- Matomo - head -->

<!-- /Matomo - head -->
[...]
<!-- Matomo -->

<!-- End Matomo Code -->

Obrigado pela ajuda

1 curtida

Você deve usar este Script para ativar o Matomo Analytics no Discourse

1 curtida

Obrigado, isso deve resolver meu problema atual…

Mas não deveria ser possível injetar JS personalizado nessas seções de qualquer forma?

Instalei o componente e o ativei para o tema “Padrão”… e parece que não está funcionando melhor :-/

1 curtida

Você verificou os logs do seu navegador? Você adicionou o host do script do Matomo à lista de configurações do CSP?

1 curtida

Você acertou… Eu não estava ciente de uma configuração CSP…

Isso é algo que os logs do navegador sempre avisarão, então verifique-os sempre.

1 curtida

Olá @Falco, acho que estou com o mesmo problema: o Matomo não está funcionando com o Discourse. Foi o que a equipe de suporte do Matomo me disse quando abri um ticket no GitHub deles:

Suporte do Matomo: “Verifiquei seu site e a CSP configurada está impedindo o carregamento do nosso rastreador. Você deve dar uma olhada em https://matomo.org/faq/general/faq_20904/ e verificar como isso pode ser configurado no ambiente do seu servidor.”

Acessei os logs do meu Discourse (URL/logs), mas não encontrei nada relacionado.

Meu Discourse está nesta URL: https://hec.fm
E minha instância do Matomo em: https://stats.hec.fm

Pensei que já tivesse alterado a CSP nas configurações para que funcionasse, mas ainda não está funcionando:

Achei que tivesse seguido cuidadosamente o tutorial Script para ativar o Matomo Analytics no Discourse, mas parece que não foi suficiente.

O que eu fiz de errado? :slightly_smiling_face:

Vejo que o script do Matomo está carregando corretamente em hec.fm, então você não está enfrentando um problema de CSP. Talvez seja algo do lado do Matomo?

Além disso, as linhas abaixo de https://stats.hec.fm/Matomo na sua captura de tela acima são desnecessárias.

3 curtidas