requestFullscreen()在不安全的源上已被弃用,并且将来将不再支持。

5
我在控制台中看到了这个消息。
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中的游戏和其他沉浸式体验,您不觉得这是一步退步吗?

虽然这是一个重要的问题,但它不适合在SO上讨论,因为它基于个人观点,而且与编程几乎没有任何关系。您可以考虑在webgl-dev-list上进行讨论(https://groups.google.com/d/forum/webgl-dev-list)。 - LJᛃ
2
实际上,这应该在w3列表或blink列表之一进行讨论。这是其中一个正在讨论的线程 - gman
1个回答

3

为什么全屏API受到限制?

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

潜在的攻击可能是在进入全屏模式时呈现正常的网站/游戏,同时模仿浏览器chrome。当用户输入新URL或打开新标签页时,内容和浏览器/操作系统UI就完全受到攻击者控制。

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

由于这些原因,Web浏览器通过每个来源的配置来限制全屏API。通常,在第一次进入全屏时,浏览器会询问您是否可以。如果您确认,Web浏览器将在下一次不提供反馈的情况下允许该来源进入全屏。

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

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

假设有一个使用全屏API的流行游戏网站通过HTTP。那么存在一个明显的安全漏洞:每个攻击者都可以通过将任何未加密请求重定向到该网站,然后渲染自己的攻击者代码来进入全屏。
虽然罪犯攻击者很少(但肯定不是不可能),但有多个国家赞助的攻击者甚至试图伪造TLS证书
视频、游戏和所有休闲全屏Web应用程序是否也需要HTPS?
如果您希望您的网站在具有审查和/或JavaScript注入攻击网络中可访问,则无论如何都需要使用HTTPS。

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

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


感谢您详细的回答,我在一段时间前将我的游戏升级到了https://bad.city。 - Pawel
你的回答的当前修订版指出:“获取TLS证书不需要花费任何费用”,并引用Let's Encrypt CA作为证据来支持你的论点。但是,从Let's Encrypt或其他遵循CA/Browser Forum基线要求的CA获得证书需要一个完全限定域名(FQDN)。如果有人计划从家庭服务器上通过私有家庭局域网(LAN)流式传输视频,那么该如何获得所述服务器的FQDN而不花费任何费用? - Damian Yerrick
@DamianYerrick,有许多免费的服务可以让您获取FQDN,例如Hurricane Electriczonominoip - phihag
@phihag,Zonomi只是DNS托管,而不是注册;您仍然需要购买域名才能使用它。其他人使用子域,我认为Let's Encrypt速率限制允许在同一注册域下每周只有二十个子域持有者获得证书。 - Damian Yerrick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接