CSP: o "segurança" que impede um script mal-intencionado de rodar no seu site
Oi, tudo bem? Aqui é a Sensei da GeHost 🥋 e hoje eu vou te ensinar, com calma e sem economia de emoji, a configurar uma coisa que parece assustadora de nome — Content Security Policy (CSP) — mas que, no fundo, é só uma "lista de convidados" que você entrega pro navegador. Ela diz: "só deixe rodar script, imagem e estilo que vierem destas fontes aqui — o resto, barra." Isso é uma das defesas mais eficazes contra o famoso XSS (Cross-Site Scripting), aquele ataque em que alguém injeta um script malicioso no seu site (num campo de comentário, numa busca, num formulário mal protegido) pra roubar dados de quem visita, sequestrar sessão de login ou redirecionar pra páginas falsas.
Pensa assim: o CSP é o segurança na porta da balada. Mesmo que alguém tente entrar um "script clandestino" escondido no seu site, se o nome dele não estiver na lista, o navegador barra na entrada — o código nem chega a rodar.
Por que isso importa pro seu site
Sem CSP, se um invasor conseguir injetar um <script> malicioso em algum lugar do seu site (por uma falha num plugin desatualizado, por exemplo), o navegador de quem visita vai simplesmente executar aquele script como se fosse seu. Com o CSP configurado, mesmo que o script consiga se infiltrar no HTML, o navegador vai recusar rodá-lo porque a origem dele não está autorizada. É uma camada extra de proteção — não substitui manter plugins/temas atualizados, mas reduz muito o estrago se algo passar.
Passo a passo: configurando o CSP no seu site (via .htaccess)
A forma mais comum de aplicar o CSP em hospedagem compartilhada é através do arquivo .htaccess, que já existe na pasta do seu site. Vamos lá:
- Acesse o cPanel do seu plano pelo link que você recebeu por e-mail (ou pelo painel.gehost.com.br), usando seu usuário e senha.
- Na tela inicial do cPanel, procure o grupo "Arquivos" e clique em Gerenciador de Arquivos (File Manager).
- Entre na pasta public_html (é onde ficam os arquivos do seu site).
- Procure o arquivo .htaccess (se ele estiver "escondido", ative a opção "Mostrar Arquivos Ocultos" nas Configurações do Gerenciador, lá no canto superior direito).
- Clique com o botão direito sobre ele e escolha Editar.
- No início ou no fim do arquivo, adicione uma linha parecida com esta (ajuste os domínios pros que você realmente usa — CDN de fontes, Google Analytics, etc.):
Header set Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; object-src 'none';"
- Salve o arquivo e abra seu site numa aba anônima do navegador pra conferir se tudo continua funcionando normalmente (imagens, formulários, menus).
Entendendo o que cada parte da política faz
- default-src 'self' — regra geral: só carregue recursos do próprio domínio, a não ser que outra diretiva diga o contrário.
- script-src 'self' — só executa JavaScript hospedado no seu próprio site. Se você usa um script externo (ex.: Google Analytics), precisa adicionar o domínio dele aqui.
- style-src — controla de onde vêm os estilos (CSS). O
'unsafe-inline'costuma ser necessário em sites com CSS "inline", mas idealmente vá removendo aos poucos. - img-src — de onde as imagens podem vir. O
data:libera imagens embutidas em base64. - object-src 'none' — bloqueia plugins antigos tipo Flash/Java, que são portas de entrada clássicas pra ataques.
Alternativa: CSP via tag <meta> no HTML
Se o seu site é feito em WordPress ou outra plataforma onde é mais fácil editar o <head> das páginas do que o .htaccess, dá pra aplicar o CSP assim, direto no HTML:
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self';">
Essa opção é um pouco mais limitada (algumas diretivas de segurança não funcionam via meta tag), mas já ajuda bastante se editar o .htaccess não for possível no seu caso.
🧪 Comece no modo "só avisar", não no modo "já bloqueia"
Dica de ouro da Sensei: antes de sair bloqueando tudo, teste comContent-Security-Policy-Report-Onlyno lugar deContent-Security-Policy. Nesse modo, o navegador só avisa no console o que seria bloqueado, sem realmente travar nada. Assim você ajusta a política com calma, sem quebrar seu site sem querer, e só troca pro modo "valendo" quando tiver certeza que está tudo redondo.
Como conferir se está funcionando
- Abra seu site no navegador.
- Aperte F12 (ou clique com botão direito → Inspecionar) pra abrir o Console do Desenvolvedor.
- Navegue pelas páginas principais do site (home, contato, área de login, se tiver) e observe se aparecem mensagens em vermelho mencionando "Content Security Policy" ou "blocked by CSP".
- Se algo legítimo (seu próprio script, uma fonte, um vídeo incorporado) foi bloqueado, é só adicionar o domínio certo na diretiva correspondente e salvar de novo.
Erros comuns (pra você não cair neles)
- Copiar uma política pronta da internet sem adaptar — cada site usa fontes, scripts e serviços diferentes; uma política genérica pode quebrar seu layout ou seus formulários.
- Esquecer de liberar serviços externos que você usa — Google Fonts, Google Analytics, chat online, mapas incorporados etc. Cada um desses precisa aparecer na diretiva certa.
- Aplicar direto em produção sem testar — sempre teste em modo "Report-Only" primeiro, ou num horário de menor movimento no site.
Precisa de uma força?
Se na hora de mexer no .htaccess ou testar a política alguma coisa não sair como esperado, não se preocupe — sua hospedagem já vem com 30 dias de suporte grátis após a entrega, e depois disso nosso time também está sempre por perto pra ajudar. É só abrir um chamado pelo painel.gehost.com.br contando o que aconteceu, que a gente dá uma olhada com você. 💜
Segurança é um processo, não um botão que se aperta uma vez só — vá testando aos poucos, com calma, e seu site fica cada dia mais blindado contra esse tipo de ataque. Até a próxima lição! 🥋