Configuração de Política de Segurança de Conteúdo (CSP) no Amazon CloudFront e Outros Servidores
A Política de Segurança de Conteúdo (CSP) é uma camada adicional de segurança que ajuda a detectar e mitigar certos tipos de ataques, como Cross-Site Scripting (XSS) e ataques de injeção de dados. Esta documentação descreve a configuração da CSP para melhorar a segurança do site.
Diretivas:
default-src:
Especifica a origem padrão para conteúdos não explicitamente definidos em outras diretivas. Restringe o conteúdo a ser carregado apenas da mesma origem.
default-src 'self';
script-src:
Especifica as origens permitidas para carregar scripts. Restringe a execução de scripts apenas à mesma origem.
script-src 'self';
style-src:
Especifica as origens permitidas para carregar estilos. Inclui uma origem externa para os estilos do Bootstrap Icons.
style-src 'self' https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/bootstrap-icons.css;
font-src:
Especifica as origens permitidas para carregar fontes. Inclui origens para as fontes do Google Fonts e do Bootstrap Icons.
font-src 'self' https://fonts.gstatic.com https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/;
connect-src:
Especifica as origens permitidas para fazer solicitações de rede. Restringe as conexões para serem feitas apenas à mesma origem.
connect-src 'self';
frame-ancestors:
Especifica as origens que podem incorporar o conteúdo em um frame. Definido como 'none' para impedir a incorporação do conteúdo em frames de outras origens.
frame-ancestors 'none';
form-action:
Especifica as origens que podem ser usadas como destino para formulários. Definido como 'self' para permitir envios de formulários apenas à mesma origem.
form-action 'self';
Exemplo Completo:
default-src 'self'; script-src 'self'; style-src 'self' https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/bootstrap-icons.css; font-src 'self' https://fonts.gstatic.com https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/; connect-src 'self'; frame-ancestors 'none'; form-action 'self';
Configuração no Amazon CloudFront:
- Acesse o Console de Gerenciamento da AWS: Console AWS
- Navegue até o CloudFront no console da AWS.
- Selecione a distribuição do CloudFront associada ao seu site.
- Em "Comportamento", configure as configurações de cabeçalho da resposta. Adicione as diretivas CSP como cabeçalhos personalizados.
Name: Content-Security-Policy Value: default-src 'self'; script-src 'self'; style-src 'self' https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/bootstrap-icons.css; font-src 'self' https://fonts.gstatic.com https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/; connect-src 'self'; frame-ancestors 'none'; form-action 'self';
- Salve as alterações e aguarde a propagação.
Configuração em Outros Servidores Web:
Para servidores web padrão, você pode configurar a CSP adicionando diretivas ao cabeçalho Content-Security-Policy
nas configurações do servidor. Isso pode ser feito no arquivo de configuração do servidor ou por meio de scripts específicos.
Exemplo em Apache (arquivo .htaccess):
Header set Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/bootstrap-icons.css; font-src 'self' https://fonts.gstatic.com https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/; connect-src 'self'; frame-ancestors 'none'; form-action 'self'; ";
Exemplo em Nginx:
add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/bootstrap-icons.css; font-src 'self' https://fonts.gstatic.com https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/; connect-src 'self'; frame-ancestors 'none'; form-action 'self'; ";
Observações Importantes:
- Teste Antes de Implementar: Certifique-se de testar a CSP em um ambiente de desenvolvimento antes de implementar em produção.
- Relatórios de Violação (Opcional): Considere configurar relatórios de violação (
report-uri
oureport-to
) para monitorar e ajustar a CSP com base em relatórios recebidos.
Estas são diretrizes gerais e podem variar com base nas configurações específicas do seu ambiente e servidor. Sempre consulte a documentação oficial do serviço que você está usando para obter informações mais precisas.