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

时间:2015-06-23 14:00:42

标签: javascript google-chrome webgl fullscreen chromium

我在控制台收到此消息。

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中的游戏以及其他身临其境的体验所以你不认为这将是一个退一步?

1 个答案:

答案 0 :(得分:2)

为什么全屏API受限制?

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

潜在的攻击可能是在进入全屏时渲染正常的网站/游戏,但也模仿浏览器镶边。当用户输入新URL或打开新选项卡时,内容和浏览器/操作系统UI将完全由攻击者控制。

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

出于这些原因,Web浏览器使用每个源配置限制全屏API。通常,在第一次进入全屏时,浏览器会询问您是否正常。如果您确认,则Web浏览器允许原点进入全屏而下次没有反馈。

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

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

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

虽然对于犯罪分子来说这种攻击很少见(但肯定不是impossible),但有多个州支持的攻击者甚至try to fake TLS certificates

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

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

it doesn't cost anything to obtain a TLS certificate以及overhead of encryption is negligibleinsecure websites will generate a browser warning in the near future以来,答案是:

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