我目前正在为一个使用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数据库查询。
祝一切顺利, -Sam