【发布时间】:2020-01-02 01:03:58
【问题描述】:
在构建具有分离的前端和后端(无服务器端呈现)的 Web 应用程序时I still want to make use of CSP nonce。通常 CSP 头和 html 应该包含相同的 nonce,这对 SSR 没有问题,但似乎没有 SSR 是不可能的。
现在我想到了一种不使用 SSR 来利用 nonce 的不同方法:
- 服务器:除了发送带有 CSP 标头的随机数之外,还将它作为 cookie 发送(仍然为每个请求更改!)This also seems to be a common approach for CSRF
- UI:而不是直接在 html 中包含需要随机数的
<script>,而是从我自己的脚本中动态加载它:
const script = document.createElement('script')
script.setAttribute('src', 'https://example.com')
script.setAttribute('data-csp-nonce', getCspNonceFromCookie())
document.head.appendChild(script);
这是解决此问题的有效方法吗?是否存在安全问题?
【问题讨论】:
标签: javascript cookies content-security-policy nonce