【问题标题】:Swashbuckle Swagger - Refused to execute inline script because it violates the following Content Security Policy directiveSwashbuckle Swagger - 拒绝执行内联脚本,因为它违反了以下内容安全策略指令
【发布时间】:2020-12-14 12:02:19
【问题描述】:

我已将 CSP 标头(使用自定义中间件)添加到 Web API 的响应中。不幸的是,它破坏了由 Swashbuckle Nuget v5.6.0 生成的 Swagger UI。问题出在生成的 index.html 中,其中包含违反 CSP 的内联 js 脚本。

有什么方法可以在不更改标题值的情况下修复它?我想坚持现行政策。

我在 GitHub 项目页面上发现了一些打开/关闭的问题,但我还没有找到任何解决方案。

【问题讨论】:

标签: c# .net swagger content-security-policy swashbuckle


【解决方案1】:

问题出在生成的 index.html 中,其中包含违反 CSP 的 内联 js 脚本。 有什么方法可以修复它而不更改标题值?我想坚持现行政策。

显然,只有一种方法 - 将所有内联脚本删除到外部文件中。

而且您没有显示您的 CSP 标头,可能它包含 'nonce-value',因此您可以使用它来允许某些类型的内联脚本。

【讨论】:

  • 我无法将此脚本移动到外部文件,因为在提供 HTML 文件时会替换一些标记(替换由 nuget 包完成)。我的标题中有nonce-{random},但我不能将它附加到脚本本身,因为库没有提供任何选项来做到这一点:(
  • 您可以使用'hash-value' 来允许内联脚本
猜你喜欢
  • 2021-07-26
  • 2013-07-13
  • 2017-05-24
  • 1970-01-01
  • 1970-01-01
  • 2015-09-21
  • 2020-06-23
相关资源
最近更新 更多