内容安全策略多个随机数

问题描述 投票:0回答:1

我有一个单页应用程序(内置于.net核心MVC 2.2中,其中html节是动态加载的。

在主文档上,添加的具有动态生成的标头的CSP策略如下所示:

Content-Security-Policy: script-src 'self' 'nonce-I64vb811BxRNGV9Xf0pM'

然后是通过jquery ajax加载功能加载的页面部分。页面部分包含带有随机数的脚本(来自src)。带有CSP标头的页面部分看起来像

Content-Security-Policy: script-src 'self' 'nonce-ci5TQsyidT8x2jwBLRHS'

除了浏览器(Chrome,Safari阻止脚本外,所有其他都不错,并带有消息:

jqueryscriptsbundle.js:formatted:43 Refused to execute inline script 
because it violates the following 
Content Security Policy directive: "script-src 'self' 'nonce-I64vb811BxRNGV9Xf0pM'

因此浏览器正在将脚本(即ci5TQsyidT8x2jwBLRHS的随机数与根/主页随机数值I64vb811BxRNGV9Xf0pM进行比较,因此脚本被阻止。

这是正确的行为吗?我该怎么做才能使其正常工作?

javascript html content-security-policy nonce websecurity
1个回答
0
投票

随页面加载的初始CSP提供了随机数。您要尝试的是在初始页面加载后通过Ajax添加另一个随机数。 CSP明确不允许这样做;这不是错误,而是重点。

您可能要做的是允许strict-dynamic的脚本src。这使您可以授权脚本,并且该脚本加载的任何内容也都得到授权。参见https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src

© www.soinside.com 2019 - 2024. All rights reserved.