Como Bypassar Código de Frame Buster em JavaScript
Resposta Rápida
Para impedir que seu site seja incorporado em frames em outros sites, utilize este código JavaScript simples e eficaz:
if (window.top !== window.self) {
window.top.location.replace(window.location.href);
}
Este código verifica se a página está sendo aberta em uma janela pai. Se não estiver, toda a janela do navegador é redirecionada para o endereço do seu site, eliminando a possibilidade de ser embutida em um frame.
Ferramentas Anti-Incorporação
Para evitar que sua página web seja incorporada em frames de sites de terceiros, você deve implementar medidas de proteção:
Cabeçalhos HTTP de Segurança: Os Guardiões Silenciosos
Utilize cabeçalhos HTTP de segurança confiáveis que atuam como os guardiões silenciosos dos seus interesses:
Proteção contra incorporação em frames:
- Use X-Frame-Options: DENY
- Configure Content-Security-Policy: frame-ancestors 'none'
Esses diretórios de cabeçalho protegerão seu conteúdo contra a incorporação em sites externos e ajudarão a manter a integridade da sua página web nas versões modernas de navegadores. Note que X-Frame-Options
oferece uma proteção robusta mesmo nas versões mais antigas dos navegadores.
JavaScript: Seu Defensor Pessoal
JavaScript serve como outra barreira contra tentativas de incorporar sua página em frames:
setInterval(() => {
if (window.top !== window.self) {
document.body.style.display = "none";
alert("Incorporar esta página em frames é proibido!");
}
}, 100);
Esse script verifica periodicamente se sua página foi incorporada em um frame. Se a incorporação for detectada, o conteúdo é ocultado e um aviso correspondente é apresentado ao usuário.
Atributo Sandbox do HTML5: Território Seguro
Para controlar o comportamento dos frames em seu site, utilize o atributo sandbox do HTML5:
<iframe src="exemplo.html" sandbox></iframe>
Ao usar o atributo sandbox, você pode impor restrições sobre as ações permitidas dentro do iframe, aumentando a segurança e dificultando que intrusos sequestren o frame.
Recursos Específicos do Navegador: Proteção Personalizada
Ao implementar medidas anti-incorporação, tenha em mente que diferentes navegadores se comportam de maneiras diferentes, afetando a eficácia desejada dessas medidas. Mantenha-se atualizado e adapte seus métodos de proteção de acordo com as especificidades de cada navegador.
Visualização
Pense na interação entre uma página web e um frame como um jogo de gato e rato, onde os frames representam obstáculos:
O site (🐭), lutando para permanecer independente, e o frame (📦), criado por um site persistente (🐱).
O defensor de embutimento (🚀) vem ao resgate para libertar o 🐭 do 📦.
O intruso (🐱💣) tenta atrair 🐭 para uma armadilha, limitando suas opções de escape (🚀).
🔨 contesta as ações do intruso 🐱💣, proporcionando uma rota de escape segura para 🐭.
Esta é uma corrida técnica sem fim, onde novos métodos de defesa são substituídos por novas técnicas de ataque.
Recomendações e Melhores Práticas
Para garantir a eficácia do seu código anti-incorporação, siga estas recomendações:
- Resolução oportuna de problemas: Se você encontrar problemas com o JavaScript, pode sempre confiar nos cabeçalhos HTTP.
- Educação do usuário: Além da proteção, eduque os usuários sobre os métodos anti-incorporação e esteja pronto para alertá-los sobre possíveis ameaças.
- Mantenha-se atualizado: Verifique e teste seu código regularmente em diferentes navegadores para garantir sua confiabilidade.
- Uso ético da tecnologia: Explique aos usuários as razões para qualquer alteração ou redirecionamento.
Esteja Pronto para Proteger Seu Site
Não dê chance aos adversários ao empregar as seguintes medidas anti-incorporação adicionais:
Técnicas Sofisticadas de JavaScript
Tenha cuidado: hackers podem tentar contornar seus mecanismos de proteção. Atualize seu código regularmente e busque soluções pouco convencionais para se manter um passo à frente.
Comunicação Adequada com o Usuário
Utilize modais ou pop-ups para informar os usuários. Se necessário, forneça aos usuários uma opção para retornar à página anterior.
Mantenha-se Informado sobre Tendências de Segurança
Fique por dentro das últimas notícias em segurança web. Por exemplo, recursos da Universidade de Stanford podem fornecer insights valiosos sobre como combater técnicas de incorporação de frames e as medidas de proteção apropriadas.
Recursos Úteis
- CSP: frame-ancestors - HTTP | MDN – documentação detalhada do MDN sobre
frame-ancestors
. - Content Security Policy Level 3 – o projeto W3C sobre CSP, onde as atualizações mais recentes podem ser encontradas.
- Padrão HTML – regras para uso de elementos
iframe
de acordo com os padrões HTML5. - Universidade Carnegie Mellon, Instituto de Engenharia de Software – artigos analíticos sobre métodos de proteção contra frames de pesquisadores renomados.
- javascript - Código para evitar incorporação em frames… e código para remover frames - Stack Overflow – discussões e soluções sobre como contornar defesas de frames no Stack Overflow.
- web.dev – conhecimento atualizado sobre desenvolvimento web moderno e segurança em frames.