而不是问如何杀死框架。我想知道什么技术可以用来防止页面内的iframe被“框架杀手”杀死
最佳答案
不幸的是,由于它们的工作方式,总是有一种方法来获得圆形框架杀手。 (但是,被框住的站点通常可以显示警告)。
参见Jeff Atwood的“ disturbing revelation”。
一些选择摘录:
如果邪恶的网站决定要去
构筑您的网站,您将
陷害。期。破坏帧为
无非是一种误解
安全;它不起作用。
框架清除代码(来自链接的堆栈溢出挑战):
<script type="text/javascript">
var prevent_bust = 0
window.onbeforeunload = function() { prevent_bust++ }
setInterval(function() {
if (prevent_bust > 0) {
prevent_bust -= 2
window.top.location = 'http://server-which-responds-with-204.com'
}
}, 1)
</script>
此代码执行以下操作:
每次增加一个计数器
浏览器尝试导航
从当前页面,通过
window.onbeforeonload事件处理程序
设置一个计时器,每次触发
通过setInterval()的毫秒数,如果
它看到计数器增加,
将当前位置更改为
攻击者控制的服务器
该服务器通过
HTTP状态码204,没有
使浏览器导航
任何地方