A referência da diretiva CSP cobre todos os campos de diretiva disponíveis nas configurações de Política de Segurança de Conteúdo do Document360, juntamente com as melhores práticas para configurá-las, métodos para testar sua política e orientações para solucionar problemas de recursos bloqueados. Use esta referência depois de ativar o CSP e estiver pronto para configurar ou validar sua política.
Grupos diretivos do CSP
As configurações de CSP no Document360 são organizadas em quatro grupos. Todos os campos aceitam URLs de domínio separadas por vírgulas no formato https://example.com.
Política de código
Esse grupo governa as fontes de onde o código e os recursos de estilo são carregados. A diretiva de fonte padrão atua como um recurso de reserva para qualquer tipo de recurso que não tenha uma regra mais específica definida.
| Diretiva | Nome do campo | Descrição |
|---|---|---|
default-src |
Fonte padrão | Define domínios permitidos para o fallback para todos os tipos de recursos que não são cobertos por uma diretiva mais específica. Um valor inicial comum é 'self', que restringe todos os tipos de recursos não listados ao seu próprio domínio. |
script-src |
Fonte do roteiro | Especifica quais domínios podem servir JavaScript na sua Base de Conhecimento. Apenas scripts das fontes listadas serão executados pelo navegador. |
style-src |
Fonte do estilo | Especifica quais domínios podem fornecer folhas de estilo e CSS. Impede que estilos maliciosos sejam injetados. |
Controle de recursos
Esse grupo controla quais domínios externos podem fornecer recursos de mídia e dados, como imagens, fontes, chamadas de API e scripts de trabalhadores em segundo plano.
| Diretiva | Nome do campo | Descrição |
|---|---|---|
img-src |
Fonte da imagem | Especifica os domínios permitidos para carregar imagens no seu site da Knowledge Base. |
font-src |
Fonte | Especifica os domínios permitidos para servir arquivos de fonte usados pela sua Base de Conhecimento. |
connect-src |
Conectar a fonte | Especifica os domínios aos quais scripts podem se conectar ao fazer chamadas de API ou requisições de rede (por exemplo, fetch, XHR, WebSocket). |
worker-src |
Fonte dos trabalhadores | Especifica os domínios permitidos para carregar scripts worker em segundo plano usados pela sua Base de Conhecimento. |
Incorporação e Segurança
Esse grupo controla como sua Base de Conhecimento incorpora conteúdo externo e como ele pode ser incorporado em outros sites. É especialmente importante para prevenir ataques de clickjacking e gerenciar conteúdos de terceiros, como vídeos, widgets e portais.
| Diretiva | Nome do campo | Descrição |
|---|---|---|
frame-src |
Fonte de quadros | Especifica os domínios permitidos a serem incorporados como frames ou iframes dentro da sua Base de Conhecimento (por exemplo, YouTube, Vimeo). |
frame-ancestors |
Ancestrais da estrutura | Especifica quais domínios podem incorporar suas páginas da Knowledge Base em seus próprios frames. Use isso para evitar enquadramentos não autorizados. |
form-action |
Ação de forma | Especifica os domínios para os quais as submissões de formulários da sua Base de Conhecimento podem ser enviadas. |
object-src |
Fonte do objeto | Especifica os domínios permitidos para carregar conteúdo de plugins, como <object> ou <embed> elementos. Defina para 'none' se não for necessário. |
Relatórios
O grupo de Relatórios instrui os navegadores a enviarem relatórios de violação para um endpoint designado sempre que um recurso for bloqueado pela sua política. Isso é essencial para identificar configurações incorretas e possíveis tentativas de ataque sem atrapalhar seu site.
| Diretiva | Nome do campo | Descrição |
|---|---|---|
report-endpoint |
Endpoint de relatório | Especifica a URL para onde os navegadores devem enviar relatórios quando recursos são bloqueados pelo seu CSP. Insira uma ou mais URLs de endpoint de relatório, separadas por vírgulas. |
report-to |
Reporte a | Especifica o nome do grupo de reporte usado pelo navegador para enviar relatórios de violação do CSP. Isso deve corresponder a um grupo de relatórios definido na configuração de relatórios do seu site. |
Certifique-se de que as URLs de endpoint inseridas nos campos de Relatórios sejam válidas e acessíveis publicamente antes de salvar. O endpoint do relatório deve aceitar solicitações POST e responder com um código de status 2xx.
Melhores práticas
-
Comece com um padrão restritivo — Defina a fonte padrão primeiro
'self'. Isso cria uma linha de base segura onde apenas recursos do seu próprio domínio são permitidos, a menos que sejam explicitamente permitidos em outros lugares. Adicione domínios específicos em campos específicos, em vez de ampliar o código padrão (Default source). -
Use diretivas específicas em vez de listas de permissões amplas — Em vez de adicionar muitos domínios à fonte padrão, use os campos alvo: Código fonte do script, Código fonte do quadro, Conectar código-fonte e assim por diante. Isso torna a apólice mais fácil de manter e reduz a superexposição acidental.
-
Use relatórios antes de aplicar — Configure primeiro o endpoint do relatório para monitorar os recursos bloqueados antes que a política afete seus leitores. Revise os relatórios de infrações por vários dias ou semanas antes de apertar a política.
-
Use nonce para scripts inline personalizados — Sempre use o
{{Document360-Nonce}}marcador de lugar nas seções de scripts HTML personalizados. Isso permite que scripts inline confiáveis rodem com segurança sem usar'unsafe-inline', o que prejudicaria toda a sua política de scripts.
Como testar sua Política de Segurança de Conteúdo
Após configurar e salvar suas configurações de CSP, verifique se a política está funcionando como esperado usando um dos seguintes métodos.
Método 1: Via fonte da página
- Abra seu site da Base de Conhecimento em um navegador.
- Clique com o botão direito em qualquer lugar da página e selecione Ver fonte da página.
- Pressione Ctrl+F (Windows) ou Cmd+F (Mac) e procure por
Content-Security-Policy. - Se encontrado, a configuração completa do CSP aparece ao lado deste termo, confirmando que está ativa.
Método 2: Via ferramentas de desenvolvimento de navegador
- Abra as ferramentas de desenvolvimento do seu navegador (F12 ou clique com o botão direito > Inspecionar).
- Navegue até a aba Rede .
- Visite sua Base de Conhecimento e selecione qualquer solicitação de página.
- Revise o HTML da página para a meta tag CSP.
Método 3: Via ferramentas online
Você também pode usar ferramentas externas, como securityheaders.com , para analisar a configuração de segurança do seu site. Como o Document360 usa um metaelemento em vez de um cabeçalho de resposta, algumas ferramentas podem relatar o CSP como ausente no nível do cabeçalho — isso é esperado.
Questões comuns
O vídeo mostra como 'Este conteúdo está bloqueado' em um artigo, mas não em outro
O domínio que serve o vídeo não está na sua lista de permissão de origem de frames, ou o domínio difere entre os tipos de embeds (por exemplo, https://www.youtube.com para embeds padrão versus https://www.youtube-nocookie.com para embeds com privacidade). Adicione ambos ao Frame Source.
A fonte personalizada é exibida incorretamente ou recorre à fonte do sistema
Os provedores de fontes normalmente usam dois domínios diferentes — um para a folha de estilo CSS e outro para os arquivos de fonte reais. Ambos devem estar listados. Para fontes do Google, adicione https://fonts.googleapis.com à fonte de estilo e https://fonts.gstatic.com à fonte de fontes.
O widget de chat carrega, mas não funciona
Widgets de chat frequentemente carregam scripts, fazem chamadas de API e carregam imagens de múltiplos domínios. Verifique no console do navegador todas as solicitações bloqueadas — pode haver várias. Adicione todos os domínios necessários aos campos diretores apropriados (Código de Script, Conectar Código, Fonte de Imagem).
O envio do formulário é bloqueado
Se um formulário na sua Base de Conhecimento for enviado para um serviço externo, adicione o domínio desse serviço ao campo de ação do Formulário.
Os relatórios de violação não estão chegando ao endpoint do Relatório
Verifique que:
- A URL do endpoint é acessível publicamente (não está atrás de VPN ou firewall).
- O endpoint aceita solicitações POST e retorna uma resposta 2xx.
- O endpoint suporta o formato de
Content-Type: application/csp-reportrequisição. - Se estiver usando a diretiva Report to, o grupo de relatórios nomeado está corretamente configurado na sua infraestrutura.
A ferramenta de validação do CSP reporta o CSP como ausente
O Document360 implementa o CSP por meio de um metaelemento na fonte da página, não via um cabeçalho de resposta HTTP. Ferramentas que apenas verificam cabeçalhos de resposta reportarão o CSP como ausente. Para confirmar se o CSP está ativado, veja a fonte da página e procure por Content-Security-Policy.
Diferenças nos navegadores
A maioria dos navegadores modernos (Chrome, Firefox, Edge, Safari) suporta o elemento meta CSP. Diferenças conhecidas:
frame-ancestorsé ignorado quando entregue via um elemento meta em algumas versões antigas do navegador. Se a proteção contra embedding de quadros for crítica, também ative a Proteção contra X-Quadros.- O Safari pode lidar com algumas diretivas CSP de forma diferente do Chrome e Firefox. Teste sua configuração no Safari se seus usuários estiverem em dispositivos Apple.
- Navegadores muito antigos (Internet Explorer 11 e inferiores) não suportam CSP. Se você tem usuários do IE11, o CSP será ignorado silenciosamente.
Projetos de Base de Conhecimento Privada não podem ser incorporados em iframes. Cookies de autenticação não estão configurados corretamente dentro dos iframes, o que causa tentativas repetidas de login e erros de redirecionamento. Se você precisar incorporar a Base de Conhecimento em outro aplicativo, use um Knowledge base widget .
FAQ
Qual é a diferença entre frame-src e frame-ancestors?
Essas duas diretivas controlam direções opostas de incorporação. frame-src controla quais domínios externos sua Base de Conhecimento pode incorporar (por exemplo, um vídeo do YouTube em um artigo). frame-ancestors controla quais domínios externos podem incorporar sua Base de Conhecimento em suas próprias páginas.
Como uso as diretrizes de Relatório?
Insira a URL do seu endpoint de relatório no campo de endpoint de relatório . Quando um navegador bloqueia um recurso, ele envia um relatório JSON para essa URL. O relatório para funciona junto com o endpoint de relatório e especifica um grupo de relatórios nomeado pré-configurado na infraestrutura de relatórios do seu local — útil para configurações empresariais com monitoramento centralizado de segurança.
O que devo adicionar ao campo de origem padrão?
Comece com 'self', que restringe todos os tipos de recursos não listados ao seu próprio domínio. Depois, adicione domínios específicos nos campos mais direcionados (código de script, fonte de imagem, etc.) em vez de ampliar o código padrão. Uma fonte padrão restritiva com exceções granulares é mais segura e fácil de auditar.
O que é um relatório de violação do CSP e como ele se apresenta?
Quando um navegador bloqueia um recurso, ele envia um payload JSON para o endpoint do seu Relatório. Um relatório típico é o seguinte:
{
"csp-report": {
"document-uri": "https://docs.yourcompany.com/article",
"violated-directive": "script-src 'self'",
"blocked-uri": "https://cdn.example.com/widget.js",
"original-policy": "default-src 'self'; script-src 'self'"
}
}
O blocked-uri campo te diz exatamente o domínio para adicionar à sua lista de permissões. O violated-directive campo indica qual campo diretiva atualizar nas configurações do Document360.