广泛部署的技术

用户的第一道防线以及 Web 应用的隔离单元是同源策略,它大致限制了 Web 应用可以访问同一来源的内容和数据,这里的来源是指协议、域名和端口的组合。

由于这个策略提出较早,它在 Web 平台的某些部分并不严格,因此会通过跨站脚本或跨站请求伪造,将用户暴露给更大的攻击面。为了使 Web 应用编写者能够减少攻击面从而超出以往要求的效果,内容安全策略(Content Security Policy,CSP)提供了一些钩子,它们可以严重限制攻击者希望实现的损害。一个通过启用了 CSP 的通过安全隧道传输的应用可以确保用户能够接收的数据是其期望得到的数据。

为了进一步加强应用的完整性,Web 开发着可以利用的子资源完整性子资源完整性的机制,从而阻止中间人攻击或被攻击的第三方供应商。

混合内容规范有助于将 Web 默认迁移到安全状态,方法是设置明确的规则,以确定那些 HTTPs 不提供的内容在何时可以或不可以从 HTTPs 页面上加载。

在聚合来自多个(可能不受信任的)源的内容的应用中,HTML5 iframesandbox 属性可以限制第三方嵌入内容可以使用的交互类型。

通过WebCrypto密钥发现API访问预先配置的密钥,Web密码学API提供必要的工具来加密数据,以便在Web应用中进行存储和传输。

对于希望表明其偏好不被跨 Web 应用和站点追踪的用户,跟踪偏好表达式(Tracking Preference Expression,也被称为Do No Track)使浏览器能够明确地向内容提供者传达用户的愿望,并确定给定的内容提供者是否声明满足该愿望。尽管如此,并不是所有的内容提供者都会尊重用户表达的偏好。

特性规范 / 小组成熟度现有实现
选择浏览器…
安全加强内容安全策略第二版 (Content Security Policy Level 2)
Web 应用安全工作组 (Web Application Security Working Group)
正式推荐标准
子资源完整性 (Subresource Integrity)
Web 应用安全工作组 (Web Application Security Working Group)
正式推荐标准

已有稳定实现:
在 Chrome(桌面, 移动)中已有稳定实现。 来源:Chrome Platform Status在 Microsoft Edge(桌面)中已有稳定实现。 来源:Microsoft Edge Platform Status在 Firefox(桌面, 移动)中已有稳定实现。 来源:Can I use在 Safari(桌面)中已有稳定实现。 来源:Can I use在 百度浏览器(移动)中已有稳定实现。 来源:Can I use在 Opera(桌面)中已有稳定实现。 来源:Can I use在 QQ浏览器(移动)中已有稳定实现。 来源:Can I use在 三星浏览器(移动)中已有稳定实现。 来源:Can I use在 UC浏览器(移动)中已有稳定实现。 来源:Can I use

已有实验性实现:
在 Safari(移动)中已有实验性实现。 特性需要开启浏览器实验性功能。 来源:Can I use

混合内容 (Mixed Content)
Web 应用安全工作组 (Web Application Security Working Group)
候选推荐标准
HTML 5.2中的iframe 元素的 sandbox 属性 (sandbox iframe attribute in HTML 5.2)
Web 平台工作组 (Web Platform Working Group)
正式推荐标准
加密WebCrypto密钥发现 (WebCrypto Key Discovery)
Web Cryptography Working Group
工作组备忘 - informative
Web密码学API (Web Cryptography API)
Web Cryptography Working Group
正式推荐标准
跟踪保护跟踪喜好表达式 (Tracking Preference Expression (DNT))
追踪保护工作组 (Tracking Protection Working Group)
候选推荐标准

开发中的技术

许多敏感的 API,比如移动设备传感器的 API,需要通过用户许可才能使用;当这些请求给予用户控制权时,由于关于授予或拒绝哪个权限并不可见,他们有时难以集成到整体的用户体验中。权限API旨在解决这个问题。

为了方便用户对在线服务的认证,Web应用安全工作组提出了凭证管理API,使开发人员能够与用户代理管理的凭证更加无缝地交互。

基于 FIDO 联盟的多因素认证工作,安全认证的目标是使 Web 的多因素认证标准化,使用“你有的东西”和“你知道的东西”的组合,所以黑客窃取密码数据库已经不足以劫持用户帐户。

安全上下文建议 Web 平台的强大特性(包括访问敏感数据或私有数据的应用程序代码)只能在安全上下文中通过经过身份验证和加密的渠道传输,以此保证数据的完整性。草案指出:“安全地交付代码不能确保应用程序总是能够满足用户的安全和隐私要求,但这是一个必要的先决条件。”

已经具有大量内容的网站在将这些内容从 HTTP 迁移到 HTTPs 是一个很艰巨的任务。升级不安全请求规范指示浏览器通过 HTTPs 加载这些资源来帮助迁移。

Referrer Policy 可帮助 Web 开发者控制 Referer HTTP header 中包含的信息,或者是否发送该 header。

用户界面安全性和可见性 API 文档建议通过确保图形渲染级别的元素可见性来消除点击劫持。例如,一个开发者部署它可以确保用户点击他们的网站的“支付”按钮不被欺骗,而不会把他们的银行余额转移给冒名顶替者。

特性规范 / 小组成熟度现有实现
选择浏览器…
权限权限API (Permissions)
Web 应用安全工作组 (Web Application Security Working Group)
工作草案
身份管理信任证管理 API 第一版 (Credential Management Level 1)
Web 应用安全工作组 (Web Application Security Working Group)
工作草案
认证Web认证:一个访问公钥凭证的API (Web Authentication: An API for accessing Public Key Credentials Level 1)
Web认证工作组 (Web Authentication Working Group)
候选推荐标准
安全上下文安全上下文 (Secure Contexts)
Web 应用安全工作组 (Web Application Security Working Group)
候选推荐标准
采用 HTTPs升级不安全请求 (Upgrade Insecure Requests)
Web 应用安全工作组 (Web Application Security Working Group)
候选推荐标准
Referrer PolicyReferrer Policy
Web 应用安全工作组 (Web Application Security Working Group)
候选推荐标准
沙盒用户界面安全性和可见性 API (User Interface Security and the Visibility API)
Web 应用安全工作组 (Web Application Security Working Group)
工作草案

探索性工作

随着更强大的特性不断地暴露在应用中,站点作者需要更加细化地控制应用中启用/禁用的特性,以及应用可以嵌入(在 iframe 中)的自己或第三方的内容,以增强安全性。特性策略定义了一种选择性地启用和禁用各种浏览器特性和API的机制(Feature-Policy HTTP头和 iframe 元素的 allow 属性)。开发者还可以使用该策略对客户端或嵌入者的某些特性和 API 的使用(或缺乏)作出承诺。

不同的API使用不同的机制来授予使用或访问潜在强大功能的权限。为了简化与权限相关的代码的设计,请求权限放弃权限两个标准提议扩展权限API,以提供一个统一的方法请求和撤销权限。

基于硬件的安全服务旨在通过向 Web 提供硬件安全服务来提高用户和应用程序提供商能够保护其在线帐户和通信的保证水平。

特性规范 / 小组实现意向
选择浏览器…
特性策略特性策略 (Feature Policy)
Web 平台孵化社区组 (Web Platform Incubator Community Group)
权限请求权限 (Requesting Permissions)
Web 平台孵化社区组 (Web Platform Incubator Community Group)
放弃权限 (Relinquishing Permissions)
Web 平台孵化社区组 (Web Platform Incubator Community Group)
认证基于硬件的安全服务 (Hardware Based Secure Services features)
基于硬件的安全服务社区组 (Hardware Based Secure Services Community Group)

不再进行的工作

HTTP请求过滤
入口监管规范提供了另一个加强安全的层面。它定义了一种机制来过滤可以从外部站点发起的 HTTP 请求的类型,降低了跨站点脚本和跨站点请求伪造的风险。这个规范的工作暂时停止了。