在过去的一年中,AMP 团队利用了最新的浏览器功能来确保用户安全并提供无卡顿的浏览体验。由于 AMP 为网络上的数十亿广告和页面提供支持,因此这些更新无需内容创建者或广告网络进行任何工作,从而使所有 AMP 页面对所有用户来说都更安全、更快速。此外,我们直接资助了在 WebKit 中实施基础安全原语,因此我们很高兴能够将相同的安全级别扩展到 Apple 的 Safari 浏览器用户。
Iframe 沙盒 FTW
Iframe 沙盒允许 Web 开发人员对 iframe 功能(例如展示广告的渲染)设置限制。AMP 现在使用此功能对所有广告进行沙盒处理,从而消除了自动重定向等攻击,这些攻击以前可以通过广告执行。
Iframe 上的“allow-top-navigation-by-user-activation”和“allow-popups-to-escape-sandbox”属性的组合为 Web 开发人员提供了一种实用的方法。它可以保护主站点的用户,同时允许着陆页正常运行。
沙盒功能 | 说明 |
allow-top-navigation-by-user-activation | 确保仅在用户操作时才从广告中进行导航。 |
allow-popups-to-escape-sandbox | 移除广告着陆页上的任何沙盒限制。 |
最初,用户仅在 Chrome 上受到保护。因此,我们资助 Igalia 添加了这些功能(链接,链接)以及许多其他功能到 WebKit,Safari 的开源浏览器引擎。Safari、Chrome 和支持基础沙盒原语的其他浏览器(大约75% 的移动网络使用量)上的所有用户都受到保护,免受自动重定向的影响。
积极弃用同步请求
同步请求对用户体验有害,因为它们可以在网络请求成功或失败之前完全阻止用户与页面的所有交互。
由于展示广告不会为它们所产生的外部性(例如网页卡顿)付费,因此它们没有动力编写最有效的代码。这不仅会导致糟糕的页面体验,还会产生一个可能帮助广告创建者的严重漏洞。提高广告可见性 最明显的方法是在广告进入视口时立即触发一些繁重的同步请求。这会导致广告创建者获得更好的可见性,而页面体验却会严重受损。
值得庆幸的是,Chrome 现在允许一项名为“控制同步 XMLHttpRequest”的功能策略,该策略允许在 iframe 上弃用同步 XHR。
AMP 启动 了针对提供给 AMP 网页的所有广告的这项功能策略。我们还在尝试为 AMP 网页上的所有 iframe 实现这项功能。
通过 AMP 扩大影响
到目前为止,数百万内容创建者已发布 AMP 网页,并且 100 多个广告网络已与 AMP 集成。我们已经能够向数亿用户推出这些更改,而无需内容创建者或广告网络进行任何新工作。只需几行代码提交到 AMP 的开源代码库即可。
AMP 的一个不太明显的优点是它能够跟上最新的浏览器功能,并自动神奇地让整个生态系统在最安全和最用户友好的网络部分上运行。对于网站所有者来说,一次性投资 AMP 可以提供持续的红利。
以这种规模推进网络、使其安全并为每个人提供出色的用户体验是一次令人谦卑的机会。2019 年我们还可以向互联网的大部分地区提供哪些其他功能?告诉我们。
Google AMP 项目产品经理 Vamsee Jasti 发布