<script nonce="35609alksdgx30q" src="example.com/main.js"></script>
还有里面
main.js
我需要抓住脚本标签上的标记:
const currentScriptElement = document.currentScript
const nonce = currentScriptElement.getAttribute('nonce')
如果
console.log(nonce)
,我得到两个不同的值:
-
在Firefox(最新版本)中,我得到:
35609alksdgx30q
一如预期。
-
在Chrome(最新版本)中,我得到:
""
(空白字符串)我没想到。
如果我用实验的nonce属性得到nonce(
HTMLElement.nonce
),我得到以下值:
-
在Firefox(最新版本)中,我得到:
null
-
在Chrome(最新版本)中,我得到:
35609alksdgx30q型
const nonce = currentScript.nonce || currentScript.getAttribute('nonce') || false
我的问题是,
为什么不呢
getAttribute('nonce')
始终返回nonce值?
我怀疑这是一个安全问题,但是为什么Firefox在使用时不返回一个空字符串呢
?
是的,技术上我知道
nonce
用于内联脚本,是此脚本由站点的CSP策略清除。我得去拿