广泛部署的技术
安全加强
用户的第一道防线以及 Web 应用的隔离单元是同源策略,它大致限制了 Web 应用可以访问同一来源的内容和数据,这里的来源是指协议、域名和端口的组合。
由于这个策略提出较早,它在 Web 平台的某些部分并不严格,因此会通过跨站脚本或跨站请求伪造,将用户暴露给更大的攻击面。为了使 Web 应用编写者能够减少攻击面从而超出以往要求的效果,内容安全策略(Content Security Policy,CSP)提供了一些钩子,它们可以严重限制攻击者希望实现的损害。一个通过启用了 CSP 的通过安全隧道传输的应用可以确保用户能够接收的数据是其期望得到的数据。
为了进一步加强应用的完整性,Web 开发着可以利用的子资源完整性子资源完整性的机制,从而阻止中间人攻击或被攻击的第三方供应商。
混合内容规范有助于将 Web 默认迁移到安全状态,方法是设置明确的规则,以确定那些 HTTPs 不提供的内容在何时可以或不可以从 HTTPs 页面上加载。
在聚合来自多个(可能不受信任的)源的内容的应用中,HTML5 iframe
的 sandbox
属性可以限制第三方嵌入内容可以使用的交互类型。
加密
通过WebCrypto密钥发现API访问预先配置的密钥,Web密码学API提供必要的工具来加密数据,以便在Web应用中进行存储和传输。
认证
基于 FIDO 联盟的免密和多因素认证工作,Web认证标准化了 Web 的强认证技术,使用“你拥有的东西”(如身份验证器)、“你知道的东西”(如PIN码)和“你是谁”(如指纹)的任意组合,让黑客即使窃取密码数据库也不足以劫持用户帐户。
开发中的技术
安全加强
跨站脚本(XSS)是Web上的主要攻击方式之一。可信任类型允许应用锁定基于 DOM 的 XSS 注入接收器(例如,Element.innerHTML
或 Location.href
设置器),以仅接受不可欺骗的、含有类型的值来代替字符串。
权限
许多敏感的 API,比如移动设备传感器的 API,需要通过用户许可才能使用;当这些请求给予用户控制权时,由于关于授予或拒绝哪个权限并不可见,他们有时难以集成到整体的用户体验中。权限API旨在解决这个问题。
身份管理
为了方便用户对在线服务的认证,Web应用安全工作组提出了信任证管理 API,使开发人员能够与用户代理管理的凭证更加无缝地交互。
安全上下文
安全上下文建议 Web 平台的强大特性(包括访问敏感数据或私有数据的应用程序代码)只能在安全上下文中通过经过身份验证和加密的渠道传输,以此保证数据的完整性。草案指出:“安全地交付代码不能确保应用程序总是能够满足用户的安全和隐私要求,但这是一个必要的先决条件。”
采用 HTTPs
已经具有大量内容的网站在将这些内容从 HTTP 迁移到 HTTPs 是一个很艰巨的任务。升级不安全请求规范指示浏览器通过 HTTPs 加载这些资源来帮助迁移。
Referrer Policy
Referrer Policy 可帮助 Web 开发者控制 Referer
HTTP header 中包含的信息,或者是否发送该 header。
沙盒
用户界面安全性和可见性 API 文档建议通过确保图形渲染级别的元素可见性来消除点击劫持。例如,一个开发者部署它可以确保用户点击他们的网站的“支付”按钮不被欺骗,而不会把他们的银行余额转移给冒名顶替者。
权限策略
随着更强大的特性不断地暴露在应用中,网站需要更精细地控制应用中启用/禁用的特性,以及应用可以嵌入(在 iframe 中)的自己的或来自第三方的内容,以增强安全性。权限策略定义了一种选择性地启用和禁用各种浏览器特性和 API 的机制(Permissions-Policy
HTTP头和 iframe
元素的 allow
属性)。开发者还可以使用该策略对客户端或嵌入者的某些特性和 API 的使用(或缺乏)作出承诺。
探索性工作
权限
隐私保护
主要的浏览器厂商逐渐引入了更为严格的技术规则来限制未经用户同意的情况下跟踪用户的行为,其中一个例子是第三方 cookie,这些 cookie 已从主要的浏览器中逐步淘汰,而目前正在讨论一些取代这些技术的提案,使用户可以控制网站是否可以跟踪它们:
- isLoggedIn 让网站通知浏览器用户的登录状态,并允许浏览器将诸如长期存储和 cookie 之类的功能限制到用户登录的场景。
- Trust Token API 使用 Privacy Pass 协议作为基础原语,在站点之间传播信任链。
- First-Party Sets 用于将一系列相关域名的集合声明为第一方集合。
- Private Click Measurement 可以以保护隐私的方式将转化(例如购买或注册)归功于先前的广告点击。
- 通过域标签和膜进行 JS 隔离提案允许应用包含远程代码,但无需让该代码访问包含域的所有功能,如 document、navigator 以及其他相关的 Web API 和 DOM 接口。
- 如果用户同意,存储访问 API 允许
<iframe>
元素内的内容请求并获得对其客户端存储的访问权限,以便依赖于对客户端存储的访问权限的嵌入式内容可以在保护用户的隐私的同时访问客户端存储的内容。 - TURTLEDOVE 提案使浏览器而不是广告商控制哪些使广告商认为某人可能感兴趣的信息。
- SPARROW 建立在 TURTLEDOVE 之上,可让广告主更好地控制用户体验,同时保持隐私权。
特性 | 规范 / 小组 | 实现意向选择浏览器… |
---|---|---|
权限 | 请求权限 (Requesting Permissions) Web 平台孵化社区组 (Web Platform Incubator Community Group) | |
放弃权限 (Relinquishing Permissions) Web 平台孵化社区组 (Web Platform Incubator Community Group) | ||
隐私保护 | IsLoggedIn 隐私兴趣组 (Privacy Community Group) | |
Trust Token API Web 平台孵化社区组 (Web Platform Incubator Community Group) | ||
First-Party Sets 隐私兴趣组 (Privacy Community Group) | ||
Private Click Measurement 隐私兴趣组 (Privacy Community Group) | ||
通过域标签和膜进行 JS 隔离 (JS Isolation via Origin Labels and Membranes) 隐私兴趣组 (Privacy Community Group) | ||
存储访问 API (The Storage Access API) 隐私兴趣组 (Privacy Community Group) | ||
TURTLEDOVE Web 平台孵化社区组 (Web Platform Incubator Community Group) | ||
SPARROW Web 平台孵化社区组 (Web Platform Incubator Community Group) |
不再进行的工作
- HTTP请求过滤
- 入口监管规范提供了另一个加强安全的层面。它定义了一种机制来过滤可以从外部站点发起的 HTTP 请求的类型,降低了跨站点脚本和跨站点请求伪造的风险。这个规范的工作暂时停止了。
- 追踪偏好表达
- 对于希望表明其偏好不被跨 Web 应用和站点追踪的用户,追踪偏好表达(Tracking Preference Expression,也被称为Do No Track)使浏览器能够明确地向内容提供者传达用户的愿望,并使服务器能够传达他们自己的跟踪行为 ,请求同意并存储用户授予的例外。并非所有内容提供商都尊重用户的偏好,并且缺乏这些扩展的部署导致了追踪保护工作组停止对该规范的工作。
- 访问基于硬件的安全服务
- 基于硬件的安全服务旨在通过为Web提供硬件安全服务来提高用户和应用程序提供商能够保护其在线帐户和通信的保证级别。成立一个工作组的提议由于缺乏实现支持而被放弃。