CÓDIGO

CSP personalizado – Proteja o seu site Joomla

CSP personalizado – Proteja o seu site Joomla

Este plugin ajuda a proteger o seu site Joomla, controlando quais os serviços externos e CDNs (como o Google Fonts, YouTube ou LinkedIn) que podem ser carregados. Adiciona uma camada extra de proteção, dizendo ao browser o que é seguro e o que deve ser bloqueado.

Pode ativar ou desativar fontes comuns com opções simples de sim/não e até adicionar os seus próprios domínios fidedignos (como a sua CDN ou host externo de fonte/imagem). Não precisa de codificação — basta clicar e guardar.

Exemplo: Quer incorporar um vídeo do YouTube ou carregar o Google Fonts? Basta ativar!  Descarregar Plugin

Descrição Técnica 

CSP personalizado – Proteja o seu site JoomlaNome do plugin:

plgSystemCustomCsp – Gestor de Políticas de Segurança de Conteúdo do Joomla 5

Objetivo:
Este plugin de sistema do Joomla 5 insere um cabeçalho HTTP CSP (Content-Security-Policy) personalizável no frontend do website, ajudando a prevenir ataques XSS, injeção de dados e carregamento não autorizado de recursos externos.

Principais características:

Totalmente configurável através da interface de administração do Joomla (sem edição de código)

Alternar o acesso ao CSP para recursos externos comuns:

  • Google Fonts
  • Font Awesome CDN
  • jQuery CDN
  • Bootstrap CDN
  • Incorporações/widgets do LinkedIn
  • Vídeos do YouTube
  • Animate.css
  • Modo avançado: Os administradores podem especificar listas de domínios personalizadas (separadas por vírgulas) por diretiva:
    script-src
    estilo-src
    fonte-src
    img-src
    frame-src

Notas de Implementação:

  • CSP Personalizado – Proteja o Seu Site é aplicado apenas no frontend (cliente do site).
  • Todos os domínios são higienizados e anexados às diretivas CSP apropriadas em tempo de execução.
  • O cabeçalho final é injetado através do hook onAfterInitialise().

Output (exemplo)

Content-Security-Policy:
default-src 'self';
script-src 'self' https://code.jquery.com https://cdn.example.com;
style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;
font-src 'self' https://fonts.gstatic.com;
img-src 'self' data: https://images.example.org;
frame-src https://www.youtube.com;
connect-src 'self';
object-src 'none';
base-uri 'self';
form-action 'self';