上周,安全研究员Scott Helme在其博客发布一篇新博文,提到功能策略将允许网络站点启用或禁用某些浏览器功能和API,来提高网络安全性和隐私性。
什么是功能策略
功能策略是一种新的安全标头,允许网站所有者在其网页或嵌入的页面启用和禁用某些Web浏览器功能。为终端用户访问站点(包括嵌入的网站)提供更安全的体验。
功能策略的工作原理
功能策略是通过HTTP响应头提供,与创建其他各种安全标头一样。网站所有者要提前先确定所需要限制的功能,然后再构建策略。如
Feature-Policy: vibrate ‘self’; usermedia *; sync-xhr ‘self’ https://trustauth.cn
通过指定vibrate允许self功能被禁用,除了站点所有者以外,所有来源都被禁用。除了sync-xhr功能仅限于当前原点,所有来源都允许使用“usermedia”。
在Helme的示例中,Vibrate功能伴随着“self”,除了站点所有者以外,所有来源都禁用它。同样,sync-xhr功能仅限于当前原点,所有来源都允许使用“usermedia”。
站点所有者有三种不同的选择来选择起源:
此来源允许当前页面和其他嵌套浏览上下文(即iFrame)使用该功能
限制对当前页面以及任何其他嵌套浏览上下文的使用,其前提是它们位于同一来源
完全禁用页面和任何其他嵌套浏览上下文中的功能
以下是可以使用功能策略启用或禁用的功能列表:
geolocation
midi
notifications
push
sync-xhr
microphone
camera
magnetometer
gyroscope
speaker
vibrate
fullscreen
payment (付钱请求)
该列表会有所更改,请密切关注页面底部链接的文档进行更新。
限制iframe
用户可通过功能策略来对iframe等内容进行更细致的控制,启用特定的iframe功能。
如父级禁用某项功能,然后在特定的iFrame上启用该功能。如下例:
Feature-Policy: vibrate ‘none’
<iframe src=“https://trustauth.cn” allow=“vibrate”>
可以在站点级别禁用振动,然后在其他特定的iFrame上启用振动功能。
当然,也可以指定此策略的另一种方式是允许trustauth.cn访问响应头中的振动,但会将其授予从该源加载的所有子上下文。
Feature-Policy: vibrate ‘self’ trustauth.cn
<iframe src=“https://trustauth.cn”>
功能策略在这方面提供了相当大的灵活性,因此可提供真正保护的方式进行部署。
支持
目前功能策略处于初期阶段,但已获得Chrome和Safari两大浏览器的支持使用。站点所有者可通过这两个浏览器提前了解该功能。相信随着浏览器的推行,用户获取的安全性将会越来越好。