【发布时间】:2021-12-26 06:59:02
【问题描述】:
我目前正在为使用 Next.js 制作的生产应用程序制定内容安全策略 (CSP)。虽然我找到了使用该框架实现 CSP 的可靠文档,但我希望确保正确解决几个问题。
问题 #1: 我已经读到 HTTP 标头中设置的安全策略更可取。但是,我找不到使用这种方法在生产中为内联样式传递“nonce”属性的方法。 https://nextjs.org/docs/advanced-features/security-headers
问题 #2: 我见过其他示例,其中开发人员将 CSP 注入自定义文档(“./pages/_document.js”)。我对使用这种方法犹豫不决,因为我听说元标记 CSP 很容易绕过。 https://github.com/vercel/next.js/tree/canary/examples/with-strict-csp
我的问题:
- 有没有办法在“next.config.js”中使用带有标头配置的“nonce”?如果有,怎么做?
- 如果 Next.js 自动清理用户输入,是否为生产中的样式指定“unsafe-inline”是否存在安全问题?我还应该提到,我还清理了我的 API 中的所有 mongo 数据库查询。
- 问题 #2 中描述的元标记方法是否与 HTTP 标头方法一样安全?
- 您建议我采取什么方法来使我的 CSP 对于我的网络应用程序尽可能强大?
一切顺利, -山姆
【问题讨论】:
标签: next.js xss content-security-policy