界面操作劫持
1、定义
界面操作劫持攻击是一种基于视觉欺骗的web会话劫持攻击,它通过在网页的可见输入控件上覆盖一个不可见的框iframe,使得用户误以为在操作可见控件,而实际上用户的操作行为被不可见的框所劫持,执行不可见框中的恶意劫持代码,从而完成在用户不知情的情况下窃取敏感信息、篡改数据等攻击。
界面操作劫持实际上突破了csrf的防御策略,这是一种社工色彩很强的跨域操作,而这种跨域正好是浏览器自身的特性。
可以分为点击劫持clickjacking、拖放劫持drag&drop jacking、触屏劫持tapjacking
2、iframe实现
(1)透明层使用css样式实现
(2)使用iframe来嵌入被劫持的页面。
<iframe id="" src="http://www.abc.com" scrolling="no">
3、防护
(1)X-FRAME-OPTIONS(修改中间件配置)
X-FRAME-OPTIONS是微软提出的一个http头,专门用来防御利用iframe嵌套的点击劫持攻击。并且在IE8、Firefox3.6、Chrome4以上的版本均能很好的支持。这个头有三个值:
DENY // 拒绝任何域加载
SAMEORIGIN // 允许同源域下加载
ALLOW-FROM // 可以定义允许frame加载的页面地址
php中设置示例:
header ( "X-FRAME-OPTIONS:DENY");
(2)增加js的防御(代码层面的防御)