答:根据 HTML的标准,本地网页可以镶嵌外部网站的图片或文字,称之为“外链”,如果因为某种原因,外部网站的图片或文字不可以访问,就会出现“天窗”问题。外链/天窗打不开的情况在如下情况同时满足时才会发生: - 该外部链接不支持IPv6; - 用户是单栈IPv6客户端。 但IPv4/IPv6的共存将会持续几十年、甚至更长时间,在实际部署和使用中不会出现外链无法访问或者天窗问题,原因是: - 如果某个客户机是IPv6/IPv4双栈的,那么他正常使用IPv6访问网站的内部链接,遇到不支持IPv6的外部IPv4链接,则使用IPv4访问,因此无需改造就可以全部支持访问。 - 如果某个客户机是纯IPv6的,由于IPv6与IPv4并不兼容,因此只要他需要访问IPv4互联网,就需要在用户侧放置一台IPv6/IPv4翻译设备(及DNS64服务器),在这种情况下,纯IPv6用户可以访问任意IPv4域名链接(当然包括如上的外部域名链接),不会出现访问不了的情况,因此网站侧无需改造就可以全部支持访问。
答:为长期、健康地推动我国乃至全球的IPv6的发展,对于“外链天窗”情况,应要求提供“外链”的责任方进行IPv6升级,而不是在本地网站进行修改。 应用层代理可以通过劫持用户数据的方式,使自己成为修改后的IPv6升级网站的链接,从而避免纯IPv6客户机访问该网站出现“天窗”。但这种方式有如下问题: - 新链接并没有受到原外链网站的许可,且没有第三方机构的对应备案认可。由于应用层代理全权代理其访问,谁都不能保证新链接的内容的真实可信。 - 如果原外链链接是https加密的,则应用层代理需要把网站的证书劫持,否则无法对加密的报文内容进行域名替换。这就要求网站所有单位对应用层代理商有足够的信任,之后可能的数据泄露、篡改等风险都需要网站所有单位来承担。 - 网页镶嵌外链的方式众多,如果网页变化了或外链变化了,都需要对应用层代理进行更新,维护工作量大。 - 采用包劫持方法修改的外链,该外链内的链接实际上还是IPv4,因此,虽然表面上的“天窗”避免了,但“天窗”内的实际信息仍然无法被纯IPv6客户机访问。如果采用应用层代理劫持的方法处理,则从理论上说需要用应用层代理为整个IPv4互联网上的其他网站进行IPv6升级,这显然是无法做到的。 因此,用应用层代理解决该问题会带来严重的安全风险、管理难度,破坏了互联网的可信体系,是不值得提倡的。因此,国家在相关的IPv6升级验收标准中,都明确指出二级链接、三级链接不包含外链,外链/天窗的“问题”均不在考核范围之内。