Home Tecnologia da Web Servidores Web

Como definir uma política de controle de frame para reduzir o clickjacking

16
política de controle de frame para reduzir o clickjacking

Para definir uma política de controle de frame no WordPress e reduzir o risco de clickjacking, você pode configurar o cabeçalho HTTP X-Frame-Options ou a diretiva Content-Security-Policy (CSP) com a opção frame-ancestors. O clickjacking é uma técnica maliciosa onde um atacante engana o usuário para clicar em algo diferente do que ele acredita estar clicando, geralmente usando iframes. Abaixo, explico como implementar essas soluções no WordPress.

Comece a sua política de controle de frame

1. Configurar o cabeçalho X-Frame-Options

O cabeçalho X-Frame-Options controla se uma página pode ser exibida dentro de um <frame> ou <iframe>. As opções mais comuns são:

  • DENY: Impede que a página seja exibida em qualquer iframe.
  • SAMEORIGIN: Permite apenas que a página seja exibida em iframes do mesmo domínio.

Implementação no WordPress

Adicione o seguinte código ao arquivo functions.php do seu tema ativo ou tema filho:

// Adiciona o cabeçalho X-Frame-Options para prevenir clickjacking
function add_x_frame_options_header() {
    header('X-Frame-Options: DENY');
}
add_action('send_headers', 'add_x_frame_options_header');

Explicação:

  • A função add_x_frame_options_header define o cabeçalho X-Frame-Options como DENY.
  • O hook send_headers garante que o cabeçalho seja enviado com todas as respostas HTTP.
  • Use SAMEORIGIN em vez de DENY se você precisar permitir iframes no mesmo domínio.

Alternativa via .htaccess (para servidores Apache):
Se você prefere configurar no nível do servidor, adicione o seguinte ao arquivo .htaccess na raiz do WordPress:

Header set X-Frame-Options "DENY"

Nota: Certifique-se de que seu servidor não sobrescreva esse cabeçalho. Teste usando as ferramentas de desenvolvedor do navegador (F12 > Network > Headers).

2. Configurar Content-Security-Policy (CSP) com frame-ancestors

O cabeçalho Content-Security-Policy é uma abordagem mais moderna e flexível, permitindo maior controle sobre quem pode enquadrar sua página. A diretiva frame-ancestors substitui X-Frame-Options em navegadores modernos.

Implementação no WordPress

Adicione o seguinte código ao functions.php:

// Adiciona o cabeçalho Content-Security-Policy para prevenir clickjacking
function add_csp_header() {
    header("Content-Security-Policy: frame-ancestors 'self'");
}
add_action('send_headers', 'add_csp_header');

Explicação:

  • frame-ancestors 'self': Permite que a página seja exibida em iframes apenas do mesmo domínio.
  • Para bloquear completamente iframes, use frame-ancestors 'none'.
  • Para permitir domínios específicos, use frame-ancestors 'self' https://exemplo.com.

Alternativa via .htaccess (Apache):

Header set Content-Security-Policy "frame-ancestors 'self';"

Alternativa via meta tag (se não puder modificar cabeçalhos):
Se você não tem acesso ao servidor ou ao functions.php, pode adicionar uma meta tag ao <head> do WordPress. Adicione ao functions.php:

// Adiciona meta tag CSP no head
function add_csp_meta_tag() {
    echo '<meta http-equiv="Content-Security-Policy" content="frame-ancestors \'self\'">';
}
add_action('wp_head', 'add_csp_meta_tag');

Nota: A meta tag é menos robusta, pois alguns navegadores podem ignorá-la, e ela não suporta todas as diretivas do CSP.

3. Usar plugins para facilitar

Se preferir não editar código, você pode usar plugins do WordPress para configurar esses cabeçalhos:

  • Headers Security Advanced & HSTS WP: Permite configurar X-Frame-Options e Content-Security-Policy via interface.
  • Security Headers: Outro plugin que facilita a configuração de cabeçalhos de segurança.

4. Testando a implementação

  • Ferramentas do navegador: Acesse seu site, abra as ferramentas de desenvolvedor (F12), vá para a aba “Network”, recarregue a página e verifique os cabeçalhos de resposta (X-Frame-Options ou Content-Security-Policy).
  • Ferramentas online: Use ferramentas como securityheaders.com para verificar se os cabeçalhos estão configurados corretamente.
  • Teste prático: Tente incorporar sua página em um iframe de um domínio diferente. Se configurado corretamente, o navegador bloqueará o carregamento.

5. Considerações

  • Compatibilidade: X-Frame-Options é amplamente suportado, mas Content-Security-Policy é mais moderno. Para máxima compatibilidade, use ambos.
  • Exceções: Se seu site precisa ser incorporado em iframes de outros domínios confiáveis (ex.: para widgets), configure frame-ancestors com os domínios permitidos.
  • Impacto: Certifique-se de que sua configuração não quebre funcionalidades legítimas, como widgets ou integrações de terceiros.

Saiba mais sobre o clickjacking no site kaspersky

DEIXE UMA RESPOSTA

Por favor, insira seu comentário!
Por favor, insira seu nome aqui