Framekiller


Un framekiller (o framebuster o framebreaker ) es una técnica utilizada por sitios web y aplicaciones web para evitar que sus páginas web se muestren dentro de un marco . Un marco es una subdivisión de una ventana del navegador web y puede actuar como una ventana más pequeña. Un framekiller se usa generalmente para evitar que un sitio web se cargue desde un conjunto de marcos sin permiso o como un ataque, como con el clickjacking .

Los Framekillers se implementan usando JavaScript que valida si la ventana actual es la ventana principal. El enfoque recomendado es bloquear la representación de la ventana de forma predeterminada y solo desbloquearla después de confirmar que la ventana actual es la principal:

Este enfoque fue propuesto en 2010 por Gustav Rydstedt, Elie Bursztein , Dan Boneh y Collin Jackson en un artículo que destacaba las limitaciones de las técnicas existentes de ruptura de marcos junto con técnicas que permitían evitarlas. [1]

La lógica aquí era mostrar la página, pero verifique si la ubicación superior es la misma que la página actual, y reemplace la parte superior por la actual si no. Sin embargo, este método puede evitarse fácilmente bloqueando la ejecución del script framebuster desde el marco exterior. [1]

La solución de JavaScript del lado del cliente se basa en que el navegador del usuario final aplique su propia seguridad. Esto lo convierte en un medio beneficioso, pero poco confiable, de no permitir que su página se incruste en otras páginas. Las siguientes situaciones pueden hacer que el script anterior sea inútil:

El iframe en HTML5 tiene un atributo sandbox . [2] El valor del atributo es un conjunto de capacidades permitidas para el contenido del iframe. Si el valor está vacío o no se establece, el contenido del iframe no ejecutará JavaScript y no permitirá la navegación de nivel superior. Al especificar allow-scripts en el conjunto de excepciones separadas por espacios en el valor, el iframe permitirá JavaScript, pero aún no permitirá la navegación de nivel superior, haciendo que los framekillers en el iframe sean impotentes.