在不安全的来源上不推荐使用requestFullscreen(),并且将来会删除支持

Paw*_*wel 5 javascript google-chrome fullscreen chromium webgl

我在控制台中收到此消息。

requestFullscreen() is deprecated on insecure origins, and support will be removed in the future.
You should consider switching your application to a secure origin, such as HTTPS. 
See https://goo.gl/rStTGz for more details.
Run Code Online (Sandbox Code Playgroud)

我认为删除常规http的全屏功能不是一个好主意。视频,游戏和所有休闲的全屏Web应用程序也需要https吗?

我知道F11(Windows)或Cmd + F(Mac)都会使该应用程序全屏显示,但是现在WebVR即将来临,WebGL中的游戏和其他沉浸式体验,所以您难道不认为这会退一步吗?

phi*_*hag 3

为什么全屏 API 受到限制?

全屏 API 允许恶意网站模仿网络浏览器和操作系统的 UI。虽然这对于有经验的用户来说可能是可见的,但新手计算机用户可能无法区分假 UI 和真实 UI。这种影响在移动操作系统上更为明显,因为系统 UI 非常稀疏且非常可预测。

潜在的攻击可能是在全屏显示时呈现正常的网站/游戏,但也模仿浏览器镶边。当用户输入新 URL 或打开新选项卡时,内容和浏览器/操作系统 UI 就处于攻击者的完全控制之下。

例如,该网站可能会向您发送一封电子邮件,然后伪造您的 Gmail Web 界面登录信息、绿色挂锁等,以窃取您的电子邮件凭据。高级攻击甚至可以进入正常的全屏(没有任何 UI)并提供虚假的“结束全屏”按钮。

由于这些原因,Web 浏览器通过按源配置限制全屏 API。通常,第一次进入全屏时,浏览器会询问您是否可以。如果确认,下次浏览器将允许源端进入全屏且不再有任何反馈。

另一个常见限制是页面加载时无法进入全屏,但需要用户交互。

为什么需要 HTTPS 来维持限制?

假设有一个流行的游戏网站通过 HTTP 使用全屏 API。然后存在一个明显的安全漏洞:访问互联网的每个攻击者都可以通过将任何未加密的请求重定向到该网站来进入全屏,然后呈现他们自己的攻击者代码。

虽然犯罪攻击者发起此类攻击的情况很少(但并非不可能),但有多个国家支持的攻击者甚至试图伪造 TLS 证书

视频、游戏和所有休闲全屏 Web 应用程序也需要 HTPS 吗?

如果您希望您的网站可以在受到审查和/或JavaScript 注入攻击的网络中访问,则无论如何您都需要使用 HTTPS。

由于获取 TLS 证书不需要花费任何费用,并且加密的开销可以忽略不计,并且不安全的网站将在不久的将来生成浏览器警告,答案是:

是的,所有网站都需要 HTTPS。