CSP Builder
Transforme os hosts que o cside observa no seu site em um cabecalho Content-Security-Policy pronto para implantar, em Protection > CSP Builder.
CSP Builder transforma os hosts que o cside observa no seu site em um cabecalho Content-Security-Policy pronto para implantar. Fica em Protection > CSP Builder na barra lateral, ao lado de CSP Violations.
Escrever uma Content Security Policy a mao exige conhecer cada host de onde suas paginas carregam recursos, incluindo os que seus fornecedores carregam em seu nome. O cside ja observa esses carregamentos, entao o builder parte do que realmente aconteceu no seu site em vez de um arquivo em branco.
O CSP Builder esta sendo disponibilizado gradualmente. Se voce ainda nao o ve na sua barra lateral, entre em contato com support@cside.dev para habilita-lo para sua equipe.
O builder gera o cabecalho. Ele nunca o envia por voce e nunca bloqueia nada no seu site. Voce copia o cabecalho para a configuracao do seu proprio servidor, CDN ou framework, e e o seu servidor que o aplica.
Escolher um dominio
Ao abrir o CSP Builder no nivel da equipe, seus dominios aparecem com uma coluna Script data. Dominios marcados como Needs setup ainda nao tem dados de scripts, e continuam selecionaveis: essa pagina mostra como instalar o script de monitoramento. Selecione qualquer linha para abrir o builder daquele dominio.
Dentro do builder, o menu de dominios no topo alterna entre dominios sem sair da pagina.
A politica sugerida
O bloco no topo da pagina e a resposta que voce veio buscar: o cabecalho completo, reconstruido ao vivo conforme voce faz alteracoes. Ele traz duas linhas, e voce precisa das duas:
Content-Security-Policy(ouContent-Security-Policy-Report-Only), a sua politicaReporting-Endpoints, que e o que faz as violacoes chegarem ao seu painel
Copie as duas com o botao ao lado do bloco. Copiar apenas a primeira linha gera uma politica que funciona mas nao reporta nada ao cside.
O endereco de reporte e montado para o dominio especifico em que voce esta, e muda conforme o cside faca ou nao proxy desse dominio. Copie-o sempre da pagina em vez de monta-lo por conta propria, ou os relatorios serao descartados em vez de arquivados no lugar errado.
Politicas longas sao cortadas nas primeiras linhas sob um degrade. Selecione Show para ler tudo. Copiar e trocar de modo funcionam mesmo com a politica cortada.
Primeiro report-only, depois enforce
O seletor Report-only / Enforce acima do bloco escolhe qual nome de cabecalho voce copia. O corpo da politica e identico nos dois casos.
Implante primeiro o cabecalho report-only. Os navegadores vao reportar o que a politica teria bloqueado sem bloquear nada, e esses relatorios chegam em CSP Violations para voce ver o que passou despercebido. Quando essa visao estiver limpa, volte, mude para Enforce e implante o cabecalho que de fato aplica a politica.
A verificacao “Before you enforce”
Copiar o cabecalho de enforce abre uma caixa de dialogo Before you enforce. Ela lembra que aplicar a politica bloqueia toda requisicao que ela nao lista e pede que voce verifique tres coisas antes:
- Scripts e estilos inline. Nenhuma lista de hosts os permite. Se suas paginas usam blocos
<script>, handlersonclickou atributosstyle, ligue as opcoes inline dessas diretivas. - URLs
data:eblob:. Comuns em icones, fontes e imagens inline. Adicione-as aimg-src,font-srcoumedia-srcse voce as usa. - Seus fluxos de checkout e login. A politica cobre as paginas que os visitantes carregaram nos ultimos 30 dias. Percorra antes as etapas de pagamento e de login para que os fornecedores que elas carregam estejam na lista.
Selecione Copy enforcing header para continuar, ou Cancel para voltar.
O interruptor default-src
Acima das abas de diretivas, um interruptor default-src ‘self’ que vale para toda a politica adiciona um piso default-src 'self' ao cabecalho. Ele restringe todo tipo de requisicao que a politica nao lista a sua propria origem, em vez de deixar esses tipos sem restricao. Fica desligado ate voce liga-lo, e o cside recomenda liga-lo.
O piso so governa as diretivas de fetch que a politica deixa de fora. Ele nunca alcanca frame-ancestors, form-action, base-uri, sandbox nem as diretivas de reporte, entao voce ainda precisa definir essas por conta propria.
Revisar diretivas
O cside preenche sete diretivas a partir do que observa: script-src, connect-src, img-src, style-src, frame-src, font-src e media-src. Cada uma tem sua aba, e voce as revisa uma de cada vez. O total abaixo da politica sempre conta o cabecalho inteiro, nao apenas a aba em que voce esta.
Cada aba traz uma marca:
| Marca | O que significa |
|---|---|
| Um ponto | Ainda nao revisada. Ninguem olhou os hosts desta diretiva. Ela e reconstruida a partir do trafego atual toda vez que voce a abre, com cada host no padrao da sua classificacao, e nada que voce desligar e mantido ate voce salvar |
| Um check | Revisada e salva. Sua decisao sobre cada host que voce viu e mantida. Hosts observados depois voltam propostos como ligados, veja abaixo |
| Esmaecida, “no data” | O cside nao viu trafego desse tipo neste dominio, entao nao ha nada a revisar |
Revisar uma diretiva registra as suas decisoes. E esse o objetivo de percorrer as abas: ate alguem salvar uma diretiva, ninguem confirmou que os hosts dela pertencem a sua politica, e os interruptores que voce mexer se perdem quando voce sai. Abrir a aba e salvar ja basta. Voce nao precisa mudar nada. O aviso abaixo da lista de hosts conta as diretivas ainda nao revisadas, porque aplicar uma politica que ninguem revisou bloqueia tudo o que essas diretivas deixaram passar.
Selecione Save quando terminar uma aba. Salvar nao move voce de lugar e mantem o seu filtro.
Hosts que aparecem depois de salvar
Salvar nao congela uma diretiva nos hosts que voce viu. Salvar registra a sua resposta apenas para esses hosts. Um host observado pela primeira vez depois de salvar nunca foi uma decisao sua, entao o builder o trata da mesma forma em uma diretiva revisada e em uma nao revisada: ele volta ligado, com o padrao da sua classificacao (ligado para tudo, exceto Blocked by you e Flagged malicious), e entra no cabecalho mostrado no topo da pagina. Na proxima vez que voce copiar esse cabecalho, o host novo estara nele, com ou sem um novo salvamento.
Isso e uma proposta, nao uma mudanca na sua politica ao vivo: nada chega ao seu site ate voce implantar o cabecalho copiado. Deixar os hosts novos ligados por padrao significa que um fornecedor que comecou a funcionar depois do seu salvamento nao e descartado em silencio da sua proxima copia. Quando voltar ao builder, verifique os hosts que nao reconhecer, desligue-os e salve de novo para que a decisao seja mantida.
Limites ao salvar
Uma diretiva pode ter ate 5.000 origens, e a politica salva inteira ate 512 KB de origens. Salvar acima de qualquer um desses limites falha com um erro que indica o limite. Se voce esbarrar neles, use familias com curinga (abaixo) em vez de listar cada subdominio, ou desligue os hosts de que nao precisa.
Grupos de hosts
Dentro de uma diretiva, os hosts sao agrupados pela forma como o cside os classifica, e cada grupo tem um interruptor em massa no cabecalho, exceto onde indicado.
| Grupo | O que significa | Ligado por padrao |
|---|---|---|
| First party | Seu proprio dominio | Sim |
| Known vendors | Um fornecedor que o cside reconhece como uma marca grande e conceituada | Sim |
| Approved by you | Um hostname que sua equipe aprovou em Resources Inventory | Sim |
| Unvetted | Tudo o que o cside nao conseguiu atribuir. E o grupo para o qual a revisao existe | Sim |
| Blocked by you | Sua equipe bloqueou este host | Nao |
| Flagged malicious | O cside bloqueou este host para todos os clientes | Nao |
Unvetted, Blocked by you e Flagged malicious nao tem interruptor em massa. A maioria dos hosts na maioria dos dominios cai em Unvetted, entao um unico interruptor reescreveria quase toda a sua politica sem ninguem olhar, e religar um host bloqueado ou malicioso deve ser uma decisao tomada host a host com o aviso a vista.
Recolher um grupo apenas esconde as linhas. Os hosts mantem o estado em que voce os deixou, continuam contando no total e continuam entrando na politica salva. A busca expande todos os grupos, entao um host que voce procurar nunca fica escondido atras de um cabecalho recolhido.
As contagens de alertas ao lado de um host sao informativas. Um alerta nunca muda se um host esta ligado.
*.csidetm.com e *.csidefd.com estao sempre na politica e nao podem ser desligados. Uma politica que bloqueasse o proprio script do cside interromperia o monitoramento a partir do qual ela foi construida.
Familias de fornecedores com curinga
Quando um fornecedor serve de muitos subdominios, como a.vendor.com, b.vendor.com e cdn.vendor.com, o builder os agrupa em uma unica linha *.vendor.com. A linha da familia tem um so interruptor e conta como uma unica entrada na politica. Expanda a linha para ver os enderecos que ela cobre.
Se voce desligar o curinga, pode escolher os enderecos exatos de que precisa um a um, e cada um passa a contar como sua propria entrada. Uma familia cujos enderecos ja estao cobertos por um curinga mais amplo que voce deixou ligado nao tem interruptor proprio; desligue esse curinga mais amplo para gerenciar os enderecos separadamente.
Uma família Mixed tem apenas alguns endereços permitidos individualmente. Novos endereços ficam desativados por padrão. Uma família Covered herda um curinga aprovado mais amplo e não tem controle próprio. Se o cside bloquear um endereço dentro de uma família permitida, a linha avisa: o curinga continua permitindo esse endereço na CSP gerada.
Policy options
Acima da lista de hosts, Policy options liga e desliga as palavras-chave de origem que uma diretiva pode carregar. Quais aparecem depende da diretiva que voce esta editando:
| Palavra-chave | O que faz |
|---|---|
'self' | Permite recursos servidos da sua propria origem. Ligada por padrao e disponivel em todas as diretivas |
'unsafe-inline' | Permite blocos inline. Oferecida em script-src e style-src, desligada por padrao nas duas. Em style-src permite atributos style e blocos <style>; em script-src permite blocos <script> e handlers do tipo onclick. Cada interruptor indica a consequencia: em script-src, qualquer script inline nas suas paginas vai executar, inclusive um injetado na pagina |
'report-sample' | Inclui um trecho do codigo bloqueado em cada relatorio de violacao. Oferecida em script-src e style-src, onde ajuda a identificar o que foi bloqueado |
Adicionar um host que o cside nao viu
Selecione Add a host na barra de ferramentas acima da lista para adicionar um hostname a mao. Use isso para um host que voce sabe que o seu site precisa mas que ainda nao apareceu no trafego, como um fornecedor que voce esta prestes a lancar ou algo que so carrega em uma pagina que o cside nao monitora.
As entradas sao validadas contra a diretiva que voce esta editando. Hostnames sao aceitos em qualquer diretiva, com um curinga *. no inicio se voce precisar. data: e blob: so sao aceitos em img-src, font-src e media-src. Portas, caminhos, esquemas e palavras-chave entre aspas sao recusados.
Se voce ja envia uma CSP
Quando o cside observa um cabecalho Content-Security-Policy no dominio, aparece um aviso acima da politica mostrando o que foi visto com mais frequencia nos ultimos 30 dias.
Combine a nossa politica com a sua em vez de substituir o seu cabecalho. O builder so preenche diretivas que consegue sustentar com trafego observado, entao uma politica gerada aqui nao diz nada sobre frame-ancestors, form-action, base-uri ou object-src. Trocar todo o seu cabecalho por este descarta cada diretiva que voce ja aplicava e para a qual nao fazemos nenhuma sugestao.
A politica exibida no aviso e o que o cside observou, nao a sua configuracao de servidor. Nonces e query strings sao normalizados para curingas, e ela pode diferir do cabecalho real de qualquer pagina especifica, entao compare com a sua configuracao em vez de copiar.
Antes de implantar
- Implante primeiro o cabecalho report-only e acompanhe CSP Violations antes de aplicar
- Percorra todas as abas de diretivas. O aviso abaixo da lista de hosts informa quantas ainda nao foram revisadas e lembra que aplicar a politica bloquearia tudo o que elas deixaram passar
- Volte depois de implantar. Hosts observados depois do seu salvamento voltam ligados e entram no proximo cabecalho que voce copiar, entao revise-os e salve de novo
- Copie as duas linhas, a politica e
Reporting-Endpoints - Combine com o seu cabecalho existente em vez de substitui-lo
Paginas relacionadas
- Ajustar sua CSP: relatorios de violacoes de CSP, limites de retencao e exportacao de relatorios
- Adicionar o cside a sua CSP: o que mudar em uma politica que voce ja mantem para que o script do cside continue funcionando
- Inventario de recursos: revise e aprove hostnames. Hostnames aprovados chegam aqui no grupo Approved by you
Thanks for your feedback!