首页 > 其他分享 >HTML5 中fullscreen 中的几个API和fullscreen欺骗

HTML5 中fullscreen 中的几个API和fullscreen欺骗

时间:2022-12-11 20:02:09浏览次数:74  
标签:fullscreen requestFullScreen element else API 全屏 document HTML5


HTML 5中的full screen,目前可以在除IE和opera外的浏览器中使用 ,有的时候用来做
全屏API,游戏呀,等都很有用。先看常见的API

1 element.requestFullScreen()

作用:请求某个元素element全屏

2
Document.getElementById(“myCanvas”).requestFullScreen()

这里是将其中的元素ID去请求fullscreen

3
退出全屏
document.cancelFullScreen()

4
Document.fullScreen

如果用户在全屏模式下,则返回true
5 document.fullScreenElement
返回当前处于全屏模式下的元素

下面的代码是开启全屏模式:

function fullScreen(element) {
if(element.requestFullScreen) {
element.requestFullScreen();
} else if(element.webkitRequestFullScreen ) {
element.webkitRequestFullScreen();
} else if(element.mozRequestFullScreen) {
element.mozRequestFullScreen();
}
}



下面的代码就是整个页面调用全屏模式


var html = document.documentElement;


fullScreen(html);


下面的则是对指定元素,比如


var canvas = document.getElementById('mycanvas');


fullScreen(canvas);


如果要取消,同样:


// the helper function
function fullScreenCancel() {
if(document.requestFullScreen) {
document.requestFullScreen();
} else if(document .webkitRequestFullScreen ) {
document.webkitRequestFullScreen();
} else if(document .mozRequestFullScreen) {
document.mozRequestFullScreen();
}
}


fullScreenCancel();



不过老实说,FULL SCREEN有个问题,容易造成欺骗,比如在


​http://feross.org/html5-fullscreen-api-attack/中,其中就有一个很好的DEMO, ​​去欺骗了,比如某个链结写的是http://www.bankofamerica.com,大家以为是美国银行,


一点进去,因为使用了全屏幕API,就会欺骗到人


$('html').on('click keypress', 'a', function(event) {

// 不响应真正的A HREF点击事件
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 {
//
}

//显示假的UI
$('#menu, #browser').show();


$('#target-site').show();
});



详细代码在https://github.com/feross/fullscreen-api-attack可以下载


老外也提到了:


Browser vendors are well aware of the potential security issues with fullscreen. For example, a malicious site could show a full screen Windows or Mac login window and steal a password. That’s why they are disabling keyboard support by default and only enabling by explicitly asking. — John Dyer

标签:fullscreen,requestFullScreen,element,else,API,全屏,document,HTML5
From: https://blog.51cto.com/u_14230175/5928571

相关文章

  • HTML5标签(1)
    Doctype:说明使用的HTML是什么版本。html:包含文件的全部内容。head:网页头部标签。meta:声明使用的字符编码语言。title:表示HTML5文档的标题。body:包含文档的主体内容。......
  • HTML5标签(2)
    图片标签:img:插入图片src:图片的地址align:对齐方式width:宽度heigth:高度border:边框厚度(大小)alt:提示信息(图片不显示时)top:偏上方middle:中间bottom:底端left:左right:右超链......
  • 百度地图API显示多个标注点带提示的代码
    <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xht......
  • Selenium3自动化测试实战--第4章 WebDriver API 3--定位一组元素,多表单切换,多窗口切换
    4.8定位一组元素书中是elements=find_elements_by_id()官网是elements=find_elements(By.ID,'')然后for循环 foreinelements:4.9多表单切换web应用中经常......
  • VUE3 API之reactive和ref常见问题解决
    reactive解构最深的一层,失去响应性问题<scriptsetuplang="ts">lettarget={a:{b:1}};lettarget1={c:1};constobj=reactive(target)constobj1=......
  • 功能强大的国产API管理神器 Eolink,亲测好用
    目录​​前言​​​​一、Eolink工具介绍​​​​1.Eolink是什么​​​​2.Eolink独创的DTDD​​​​3.API全生命周期管理​​​​4.Eolink的使用​​​​二、Eolink功......
  • Eolink神技之一、基于数据库智能生成API文档
    Eolink神技之一、基于数据库智能生成API文档目录​​Eolink神技之一、基于数据库智能生成API文档​​​​Eolink数据库智能API文档解决的问题​​​​演示流程​​​​一、......
  • 这款国产API工具也太强了吧!让我放弃了postman
    为什么弃用postman转用Eolink?程序员在接口开发完成后都通常需要自测,当返回结果根据符合预期时,则表示代表接口可用。自己以前用的是postman来进行接口测试,但postman只能进行......
  • .NET 6 的轻量级 Webapi 框架 FastEndpoints
    Github: https://github.com/FastEndpointsFastEndpoints(fast-endpoints.com)基于.NET6的轻量级Webapi框架FastEndpoints 大家好,我是等天黑。FastEndpoin......
  • fastapi身份认证
    官方文档FastApi提供了OAuth2PasswordBearer类对OAuth2中的password授权模式提供了支持。一、实现逻辑创建OAuth2PasswordBearer实例并指明tokenurl(认证用户获取tok......