Política de segurança de conteúdo
O Tableau Server oferece suporte ao padrão da Política de segurança de conteúdo (CSP). A CSP tem como objetivo ser uma camada adicional de segurança contra script entre sites e outros ataques de Web mal intencionados. A CSP foi implementada como um cabeçalho de resposta HTTP que permite especificas de onde recursos externos, como scripts e imagens, podem ser carregados com segurança.
Consulte o site do Mozilla(O link abre em nova janela) para obter mais informações sobre a CSP.
Configurar e habilitar a CSP
A CSP foi configurada e habilitada usando o comando Opções do tsm configuration set. Se estiver executando o Tableau Server em uma implantação distribuída, execute estes comandos no nó inicial no cluster. A configuração será aplicada no cluster após executar o tsm pending-changes apply.
Etapa 1: definir diretivas padrão
O Tableau Server inclui o conjunto de diretivas padrão na tabela abaixo.
Para definir uma diretiva, use a seguintes sintaxe do tsm:
tsm configuration set -k content_security_policy.directive.<directive_name> -v "<value>"
Por exemplo, para definir a diretiva connect_src
, execute o comando a seguir:
tsm configuration set -k content_security_policy.directive.connect_src -v "* unsafe-inline"
Opção | Valor padrão | Descrição |
---|---|---|
content_security_policy.directive.default_src | ‘none’ | Serve como um fallback para as diretivas de recuperação. Valores válidos para |
content_security_policy.directive.connect_src | * | Restringe as URLs que podem ser carregadas usando interfaces de script. Valores válidos para |
content_security_policy.directive.script_src | * | Especifica fontes válidas para o JavaScrip. Valores válidos para |
content_security_policy.directive.style_src | * ‘unsafe-inline’ | Especifica fontes válidas para planilhas de estilo. |
content_security_policy.directive.img_src | * data: | Especifica fontes válidas de imagens e favicons. |
content_security_policy.directive.font_src | * data: | Especifica fontes válidas para fontes carregadas usando @font-face. |
content_security_policy.directive.frame_src | * data: | Especifica fontes válidas para contextos de navegação aninhados em carregamento usando elementos como <frame> e <iframe>. |
content_security_policy.directive.object_src | data: | Especifica fontes válidas para os elementos <object>, <embed> e <applet>. Valores válidos para |
content_security_policy.directive.report_uri | /vizql/csp-report | Instrui o agente de usuário a relatar tentativas de violação à CSP. Esses relatórios de violação consistem de documentos JSON enviados por meio de uma solicitação do HTTP POST ao URI especificado. Valores válidos para |
Etapa 2: acrescentar diretivas adicionais (opcional)
As diretivas padrão incluídas com o Tableau Server são um subconjunto de diretivas sustentadas pela CSP.
Para obter uma lista completa de diretivas CSP suportadas, vá até https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Headers/Content-Security-Policy(O link abre em nova janela).
Você pode adicionar diretivas ao conjunto padrão existente ao adicionar a nova diretiva no namespace content_security_policy.directive. Note que é necessário incluir o parâmetro --force-keys
ao adicionar novas diretivas. A sintaxe é a seguinte:
tsm configuration set -k content_security_policy.directive.<new_directive_name> -v "<value>" --force-keys
Por exemplo, para adicionar a diretiva worker-src
(O link abre em nova janela), execute o comando a seguir:
tsm configuration set -k content_security_policy.directive.worker-src -v "none" --force-keys
Etapa 3: especificar diretivas apenas de relatórios (opcional)
É possível configurar a CPS para relatar algumas diretivas e impor outras. Ao definir content_security_policy.enforce_enabled como true, todas as diretivas são impostas (mesmo se content_security_policy.report_only_enable também estiver definido como true).
Para especificar diretivas como "apenas relatório" e não impostas, adicione-as ao namespace report_only_directive. Note que é necessário incluir o parâmetro --force-keys
ao adicionar novas diretivas. A sintaxe é a seguinte:
tsm configuration set -k content_security_policy.report_only_directive.<directive_name> -v "<value>" --force-keys
Por exemplo, para relatar somente a diretiva script_src
, execute o comando a seguir:
tsm configuration set -k content_security_policy.report_only_directive.script_src -v " http://*.example.com" --force-keys
Etapa 44: habilitar a CSP no Tableau Server
Depois de configurar as diretivas, habilite a CSP no Tableau Server.
As opções a seguir são usadas para habilitar o modo imposição ou somente relatar nas diretivas definidas
Opção | Valor padrão | Descrição |
---|---|---|
content_security_policy.enforce_enabled | false | Adiciona um cabeçalho CSP em todas as solicitações, para que a violação seja imposta pelo navegador. |
content_security_policy.report_only_enabled | true | Adiciona um cabeçalho CSP em todas as solicitações, para que as violações sejam gravadas nos logs vizql-client, mas não sejam impostas pelo navegador. |
Para habilitar a imposição das diretivas CSP especificadas, execute o seguinte comando
tsm configuration set -k content_security_policy.enforce_enabled -v true
Etapa 5: executar o comando tsm pending-changes apply
Ao concluir a configuração da CSP, execute tsm pending-changes apply.
Se as alterações pendentes exigirem uma reinicialização do servidor, o comando pending-changes apply
exibirá um prompt para que você saiba que ocorrerá uma reinicialização. Esse prompt será exibido mesmo que o servidor esteja parado, porém, nesse caso, não há reinicialização. Cancele o prompt com a opção --ignore-prompt
, mas isso não altera o comportamento de reinicialização. Se as alterações não exigirem uma reinicialização, elas serão aplicadas sem um prompt. Para obter mais informações, consulte tsm pending-changes apply.
Exibir relatório CSP
Para exibir as violações de CSP de uma determinada visualização em um navegador que inclui ferramentas de desenvolvedor. Este exemplo usa o navegador Chrome.
Carregue uma visualização teste com as violações que estão hospedadas na implantação do Tableau Server onde você configurou a CSP.
Insira
CTRL+Shift+I
para abrir as ferramentas do desenvolvedor no Chrome.Clique na guia Rede.
No campo Filtro, insira
csp-report
, e clique em Localizar todos.Se não houver violações, a pesquisa não retornará relatórios da CSP.
Se houver violações, clique na guia Cabeçalhos no painel de resultados e role até a parte inferior para exibir a Carga de solicitação.