Políticas de Segurança de Conteúdo: O Que São e Como Implementar

Entenda as Políticas de Segurança de Conteúdo (CSP), sua importância na proteção contra ataques XSS, e como implementá-las em seu site.


25/07/2024
Compartilhe
Políticas de Segurança de Conteúdo: O Que São e Como Implementar

As Políticas de Segurança de Conteúdo (CSP) são uma camada adicional de segurança que ajuda a detectar e mitigar certos tipos de ataques, incluindo Cross Site Scripting (XSS) e ataques de injeção de dados. Elas permitem que os administradores web controlem os recursos que podem ser carregados e executados em uma página web.

1. O Que São Políticas de Segurança de Conteúdo?

As CSPs são um mecanismo de segurança fornecido pelos navegadores modernos que permite que você controle quais recursos (como scripts, estilos, imagens, etc.) podem ser carregados e executados na sua web. Isso é feito através de cabeçalhos HTTP que definem as políticas de segurança.

  • Proteção Contra XSS: CSPs ajudam a bloquear a execução de scripts maliciosos que podem ser injetados em seu site.
  • Prevenção de Injeção de Dados: Restringe os tipos de conteúdo que podem ser carregados, ajudando a evitar que dados maliciosos sejam incluídos na sua página.
2. Como Funcionam as Políticas de Segurança de Conteúdo?

As CSPs são definidas no cabeçalho HTTP Content-Security-Policy. Este cabeçalho especifica as fontes permitidas para vários tipos de conteúdo em sua página.

Exemplo básico de uma política CSP:

http
Content-Security-Policy: default-src 'self'; img-src 'self' https://example.com; script-src 'self' https://apis.google.com

Neste exemplo:

  • default-src 'self': Permite apenas recursos do mesmo domínio do site.
  • img-src 'self' https://example.com: Permite carregar imagens do mesmo domínio e do https://example.com.
  • script-src 'self' https://apis.google.com: Permite executar scripts do mesmo domínio e do https://apis.google.com.
3. Implementação de CSP

Passo a Passo para Implementar CSP:

  1. Definir Políticas:

    • Avalie quais recursos são necessários para o funcionamento do seu site.
    • Identifique as fontes confiáveis para esses recursos.
  2. Adicionar Cabeçalho CSP:

    • Configure seu servidor web para adicionar o cabeçalho CSP nas respostas HTTP.

    Exemplo para Apache:

    apache
    Header set Content-Security-Policy "default-src 'self'; img-src 'self' https://example.com; script-src 'self' https://apis.google.com"

    Exemplo para Nginx:

    nginx
    add_header Content-Security-Policy "default-src 'self'; img-src 'self' https://example.com; script-src 'self' https://apis.google.com";
  3. Teste e Ajuste:

    • Utilize ferramentas como o CSP Evaluator do Google para testar suas políticas.
    • Ajuste conforme necessário para garantir que todas as funcionalidades do site sejam mantidas enquanto se maximiza a segurança.
  4. Monitoramento e Reporte:

    • Configure um mecanismo de reporte CSP para monitorar violações. Isso pode ser feito adicionando a diretiva report-uri.

    Exemplo:

    http
    Content-Security-Policy: default-src 'self'; img-src 'self' https://example.com; script-src 'self' https://apis.google.com; report-uri /csp-report-endpoint
4. Diretivas Comuns de CSP
  • default-src: Fonte padrão para todos os tipos de conteúdo que não têm uma diretiva específica.
  • script-src: Fontes permitidas para scripts.
  • style-src: Fontes permitidas para CSS.
  • img-src: Fontes permitidas para imagens.
  • connect-src: Fontes permitidas para conexões (por exemplo, fetch, XHR).
  • font-src: Fontes permitidas para fontes.
  • frame-src: Fontes permitidas para iframes.
  • media-src: Fontes permitidas para mídia (vídeos, áudios).
  • object-src: Fontes permitidas para plugins, como Flash ou Java applets.

Conclusão

Implementar Políticas de Segurança de Conteúdo é uma prática recomendada para proteger seu site contra uma variedade de ataques cibernéticos. Ao definir cuidadosamente suas políticas e monitorar possíveis violações, você pode aumentar significativamente a segurança do seu site e proteger melhor seus usuários.



Tags:
segurança de conteúdo CSP políticas de segurança proteção contra XSS segurança web cabeçalhos HTTP implementação de CSP