0

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

4

1 回答 1

0

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

但有人怀疑它是否值得这样做。
Permissions Policy是 的新名称Feature Policy,下面我将使用功能策略术语,但以下所有内容也适用于权限策略。

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

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

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

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

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

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

于 2021-11-26T07:46:49.990 回答