关于javascript:requestFullscreen()在不安全的来源上已被弃用,将来会删除支持

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

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

1
2
3
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允许恶意网站模仿Web浏览器和操作系统的UI。尽管这对于有经验的用户可能是可见的,但是新手计算机用户可能无法区分假UI和真实UI。在系统界面非常稀疏且可预测的移动操作系统上,这种影响更加明显。

潜在的攻击可能是在进入全屏模式后渲染正常的网站/游戏,而且还模仿了浏览器镶边。当用户输入新的URL或打开新的选项卡时,内容和浏览器/ OS UI便会受到攻击者的完全控制。

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

由于这些原因,Web浏览器使用按来源配置限制了全屏API。通常,在第一次进入全屏模式时,浏览器会询问您是否正常。如果确认,则网络浏览器允许原点下次进入全屏显示而无需反馈。

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

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

假设有一个受欢迎的游戏网站通过HTTP使用全屏API。然后有一个明显的安全漏洞:通过将任何未加密的请求重定向到该网站,然后呈现他们自己的攻击者代码,可以使进入Internet路径上的每个攻击者都进入全屏模式。

虽然犯罪攻击者很少(但并非并非不可能)进行这样的攻击,但有多个国家赞助的攻击者甚至试图伪造TLS证书。

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

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

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

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