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

requestFullscreen() is deprecated on insecure origin, and support will be removed in the future

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

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.

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

我知道 F11(Windows) 或 Cmd + F(Mac) 无论如何都会将应用程序带到全屏,但现在 WebVR 即将到来,WebGL 中的游戏和其他沉浸式体验因此你不觉得这是倒退吗?

为什么全屏 API 受到限制?

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

一个潜在的攻击可能是在进入全屏时呈现正常 website/game,但也模仿浏览器 chrome。当用户输入一个新的 URL 或打开一个新标签时,内容和 browser/OS UI 就完全处于攻击者的控制之下。

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

出于这些原因,Web 浏览器使用每个来源的配置限制全屏 API。通常,在第一次进入全屏时,浏览器会询问您是否可以。确认后浏览器允许本站进入全屏,下次无反馈。

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

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

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

虽然很少见(但肯定不是impossible) for criminal attackers to run such an attack, there are multiple state-sponsored attackers who even try to fake TLS certificates

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

如果您希望您的网站可以在受审查的网络中访问 and/or JavaScript injection attacks,您无论如何都需要使用 HTTPS。

既然it doesn't cost anything to obtain a TLS certificate and the overhead of encryption is negligible and insecure websites will generate a browser warning in the near future,答案是:

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