Атрибут nonce

Атрибут nonce (от англ. number used once — однократно используемое число) применяется в криптографических целях для защиты содержимого от злоумышленников. Значение nonce представляет собой одноразовый код (в виде набора символов), уникальный для каждой страницы.

Сервер генерирует случайную последовательность символов и включает её в HTTP-заголовок Content-Security-Policy (CSP, политика безопасности содержимого).

Content-Security-Policy: default-src 'self';
                         script-src 'self' 'nonce-088bebbe01749b89';

Это же значение устанавливается и для элемента <script>:

<script nonce="088bebbe01749b89">…</script>

Браузер сравнивает значение nonce, полученное в SCP и указанное в <script> и если они совпадают, тогда скрипт выполняется. В противном случае выполнение скрипта блокируется.

Синтаксис

<script nonce="<код>">
<link nonce="<код>">

Значения

В качестве значения используется уникальная строка.

Значение по умолчанию

Нет.

Пример

<!DOCTYPE html> <html lang="ru"> <head> <meta charset="utf-8"> <title>nonce</title> <script src="/example/script/welcome.js" defer nonce="088bebbe01749b89"></script> </head> <body> <div id="welcome"></div> </body> </html>

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

Спецификация Статус
HTML Living Standard Живой стандарт

Браузеры

118 118 103 17 31
117 118 73 17

В таблице браузеров применяются следующие обозначения.

  • — элемент полностью поддерживается браузером;
  • — элемент браузером не воспринимается и игнорируется;
  • — при работе возможно появление различных ошибок, либо элемент поддерживается с оговорками.

Число указывает версию браузреа, начиная с которой элемент поддерживается.