【问题标题】:Set Permission-Policy for Vue and NodeJS app为 Vue 和 NodeJS 应用程序设置权限策略
【发布时间】:2022-01-01 16:30:09
【问题描述】:

我有一个应用程序,它具有基于 VueJs 的前端和基于 NodeJs 的后端 API。客户端是一个 SPA,它与 API 通信以获取数据。现在在安全扫描中,提到该应用程序没有Permission-Policy HTTP 标头,我想添加它。我不确定是否可以在 VueJS 中添加任何选项,我很困惑这是否需要从前端添加。在 Node 应用程序中,可以设置标题,但这里的页面不是从服务器端生成的。如果有人可以让我知道如何将这些标题添加到应用程序中,将会很有帮助。

【问题讨论】:

    标签: vue.js http http-headers feature-policy


    【解决方案1】:

    从技术上讲,您可以在发送初始 SPA 的 HTML 代码时发布 Permissions-Policy 标头(您必须使用一些包或 Node.js 服务器工具来发布响应标头)。更重要的是,扫描程序不会执行 ajax,也不会看到您的 SPA 页面。

    但是有一些疑问是否值得这样做。
    Permissions PolicyFeature Policy 的新名称,下面我将使用 Feature Policy 术语,但以下所有内容也适用于 Permissions Policy .

    1. 浏览器不支持功能策略和do not support Permissions Policy。只有 Chrome 支持 interest-cohort 指令,但您必须设置特定标志才能启用权限策略支持。功能政策/权限政策规范仍在制定中。

    2. Feature Policy 很少通过 HTTP 标头发布,因为它旨在限制嵌套浏览上下文 (iframe) 的功能,而不是主页本身。因此,它主要通过 <iframe allow="..." 属性为每个嵌入的第三方 iframe 发布。
      但是扫描器并没有意识到这一点,也没有检查allow= 属性。

    3. 扫描仪对真正的安全性了解不多,他们更专注于可视化小玩意,如 A+ 级和绿色/红色标签。因此扫描仪:

    • 无法识别元标记中的内容安全策略,仅在 HTTP 标头中。
    • 尽管存在 CSP 的 frame-ancestors 贬义词,但任何网页都需要 X-Frame-Options 标头,并忽略某些网站被嵌入的事实(小部件、youtube/vimeo 视频等)。
    • 需要功能策略/权限策略标头,尽管这些标头不受支持或以其他方式发布。

    大多数扫描仪的结果都没有真正的安全性,只是如何获得 A+ 级,没有别的(参见相关主题“headers manipulatin to get Grade A+”)。

    当然,扫描程序可以将您的注意力吸引到一些被忽视的标题上,但最终决定网络应用需要发布哪些标题取决于您。

    【讨论】:

      猜你喜欢
      • 2018-10-12
      • 1970-01-01
      • 2015-03-18
      • 1970-01-01
      • 2019-10-05
      • 2011-08-04
      • 2013-09-27
      • 1970-01-01
      • 2021-01-18
      相关资源
      最近更新 更多