点击劫持不会传播。
正如它所说的那样 - 顶起咔嗒声 - 仅此而已。但是,这些点击的后果可能很严重。
假设您访问一个站点,evil.example.org
. 在另一个选项卡中,您还登录了您的银行,bank.example.com
.
evil.example.org
还加载bank.example.com
到 IFrame 中。但是,它使用 CSS 使这个 IFrame 不可见。它不加载主页,它加载汇款页面,传递一些参数:
<iframe src="https://bank.example.com/loggedIn/transferMoney?toAccount=Bob&amount=100000"></iframe>
现在,这个页面不会立即转账。它要求用户单击以确认转移给 Bob。
但是,evil.example.org
在按钮下方绘制一个Confirm Transfer按钮说Free iPad click here。
因为 IFrame 是不可见的,所以用户只看到Free iPad click here. 但是当他们点击时,浏览器会针对Confirm Transfer.
因为您在另一个选项卡中登录了银行网站,所以 Bob 刚刚骗走了您的钱。
请注意,X-Frame-Options
标头修复了您网站上的此漏洞,假设它设置为SAMEORIGIN
或DENY
。在添加标题之前,您很容易受到攻击。CSP 中有一个名为的新指令frame ancestors
- 但是,只有最新的浏览器支持它,所以你最好现在添加两个标头。这将为您在 Internet Explorer 8 及更高版本以及 Chrome、Firefox、Opera 和 Safari 上提供保护。
防止框架还可以帮助阻止诸如跨站点历史操纵之类的攻击。