Políticas de Segurança de Conteúdo
As Políticas de Segurança de Conteúdo (CSP) são enviadas como um cabeçalho ao navegador dos seus usuários pelo seu servidor web. Elas são usadas para declarar quais recursos dinâmicos podem ser carregados na sua página.
Para muitos sites, isso geralmente envolve declarar que apenas scripts e estilos do seu próprio domínio e aqueles de todas as ferramentas que você usa são permitidos. No entanto, isso pode se tornar mais problemático quando configurações mais complexas estão envolvidas.
Se você identificar erros de CSP no seu site semelhantes aos mostrados abaixo, sua equipe de desenvolvimento ou provedor de hospedagem precisará ajustar suas configurações de CSP.
Ajuste suas configurações de CSP
1. Verifique se há erros de CSP.
Se você encontrar problemas com estatísticas e consentimentos no painel de administração da Axeptio, às vezes isso pode ser causado por um erro de CSP. Você pode verificar esses erros no console do desenvolvedor do seu navegador. Você pode aprender como abrir o console seguindo as etapas neste guia.
Se houver um problema de Política de Segurança de Conteúdo, você verá um erro semelhante ao abaixo:
2. Consulte seu desenvolvedor web ou provedor de hospedagem para ajustar as configurações de CSP.
Como todos os servidores são diferentes, a equipe de suporte da Axeptio não será capaz de ajudar a resolver esses problemas além de identificar um erro de CSP. Ao modificar suas Políticas de Segurança de Conteúdo, a melhor pessoa para contatar é seu desenvolvedor web ou aquele que gerencia seu site.
3. Escolha quais configurações de CSP ajustar.
Se você estiver usando uma CSP padrão, adicionar o seguinte às suas regras de default-src será suficiente.
Os "..." nos exemplos abaixo são espaços reservados para todas as regras existentes que você pode ter em vigor:
default-src ... https://.axept.io https://.axeptio.eu https://axeptio.imgix.net https://*.gstatic.com 'unsafe-inline'
Se você quiser restrições mais rigorosas, recomendamos o modelo abaixo para garantir que suas políticas sejam mais resistentes no futuro, conforme expandimos nossos serviços. Aqui está um exemplo de como isso pode parecer:
default-src … 'unsafe-inline'
script-src … https://*.axept.io 'unsafe-inline'
connect-src … https://*.axept.io https://*.axeptio.eu https://*.axeptio.tech
img-src … https://axeptio.imgix.net https://*.axept.io https://*.gstatic.com
media-src … https://axeptio-videos.imgix.net
font-src … https://fonts.axept.io
Se suas CSPs exigirem mais granularidade, aqui estão as permissões de segurança mínimas absolutas que você deve adicionar ao seu servidor web para permitir que a Axeptio funcione corretamente no seu site:
script-src … https://static.axept.io 'unsafe-inline'
connect-src … https://*.axept.io https://*.axeptio.eu https://*.axeptio.tech
img-src … https://axeptio.imgix.net https://favicons.axept.io https://*.gstatic.com
media-src … https://axeptio-video.imgix.net
font-src … https://fonts.axept.io
Uso de um nonce
Para proteger seu site contra a execução de código inesperado, você pode contar com o atributo Nonce para identificar e limitar a execução de scripts apenas aos autorizados. Isso ajuda a impedir a execução de código malicioso. A integração do widget Axeptio oferece suporte ao atributo Nonce e pode ser facilmente configurada usando o código de integração.
Configure seu ID de nonce no cabeçalho HTTP das páginas do seu site e reutilize-o como um atributo para cada script executado na página.
<?php
$nonce = base64_encode(random_bytes(18));
header("Content-Security-Policy: default-src 'self'; script-src 'strict-dynamic' 'nonce-" . $nonce . "' https:");
?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
<head>
<title>CSP Nonce</title>
<script type="text/javascript" nonce="<?= $nonce ?>" src="..."></script>
</head>
<body>
<script type="text/javascript" nonce="<?= $nonce ?>">
myFunction();
</script>
</body>
</html>
2. O widget Axeptio é um script carregado no seu site. Você só precisa adicionar o atributo nonce gerado ao seu script de integração e associá-lo a um atributo dedicado axeptioSettings, responsável por propagar o valor do nonce a todos os componentes gerenciados pelo widget Axeptio.
<!-- Integre seu script JS aqui -->
<script nonce=$nonce>
window.axeptioSettings = {
clientId: "axeptio-client-id",
cookiesVersion: "axeptio--cookie-version",
nonce: $nonce
};
(function(d, s) {
var t = d.getElementsByTagName(s)[0], e = d.createElement(s);
e.async = true;
e.src = "https://static.axept.io/sdk.js";
t.parentNode.insertBefore(e, t);
})(document, "script");
</script>
Agora, todo o conteúdo HTML inline gerado pelo widget Axeptio é validado através do atributo nonce e não desencadeia mais um erro unsafe-inline.
