在我的应用程序中,我有一些服务器变量:
{{# serverVars }}
<script>
window.serverVars = {{{ . }}};
</script>
{{/ serverVars }}
这用于设置例如window.serverVars.countryCode
由服务器使用 geoIP 确定的 countryCode。
现在在 CSP 中,这被认为unsafe-inline
通常是不好的。那么最好的方法是什么:
- 使用 nonce 很困难:nonce 每个请求都是唯一的,并且大多数 CSP 库(例如 Helmet)认为 CSP 策略是静态的
- 使用哈希很困难: serverVars 的值对于每个请求都是唯一的,并且大多数 CSP 库(例如Helmet)认为 CSP 策略是静态的
unsafe-inline
forscript-src
被认为是不安全的
使用 CSP 将动态服务器变量添加到客户端 JavaScript 的最佳方法是什么?