Веб и безопасность приложений

Одноразовое значение CSP (nonce)

Определение

Одноразовое значение CSP (nonce) — случайная строка, которую создают заново для каждого ответа и указывают в политике и в тех элементах страницы, которым разрешено выполняться. Браузер сверяет значения и допускает только совпавшие элементы.

Также ищут: CSP nonce · nonce-source · script nonce · одноразовый CSP nonce

Зачем это знать

Если значение повторяется, предсказуемо или попадает в элемент под контролем злоумышленника, ограничение перестаёт защищать выполнение сценариев.

Доказательная часть

Что подтверждено

  1. Источник nonce-source в CSP разрешает элемент, значение nonce которого совпадает со значением политики; сравнение выполняет браузер.

    Граница применимости: Сопоставление nonce-source в CSP.

  2. Значение nonce создают заново для каждого ответа, делают достаточно случайным и указывают только в разрешённых элементах.

    Граница применимости: Создание и размещение nonce в CSP.

  3. CSP Level 3 рекомендует не менее 128 бит случайности до текстового кодирования. Количество символов в строке не равно количеству случайных битов: повторённая или предсказуемая строка не получает случайность от своей длины.

    Граница применимости: Рекомендация по случайности nonce в принятой редакции CSP Level 3; это не универсальный формат или фиксированная длина строки.

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

    Граница применимости: Сопоставление nonce-source с элементами CSP; не утверждает безопасное повторение между разными ответами.

  5. Если автоматически проставить правильное nonce всем элементам, включая внедрённые, проверка совпадения начнёт разрешать и недоверенное содержимое. Значение добавляют только элементам, которые выбрало доверенное построение документа.

    Граница применимости: Вывод из правил совпадения CSP и границы доверенного вывода; не инструкция разрешать произвольную пользовательскую разметку.

Граница терминов

Не путать

Одноразовое значение CSP (nonce) Политика безопасности содержимого (CSP)

Значение в элементе имеет смысл только вместе с соответствующей политикой. Режим отчётов при совпадении или несовпадении не превращается в блокировку.

Одноразовое значение CSP (nonce) Контекстное кодирование вывода

Nonce не проверяет смысл кода внутри разрешённого элемента. Значения в документе всё ещё требуют безопасного способа вставки.

Перед спецификацией

Что проверить

  1. Создавайте новое случайное значение для каждого ответа.
  2. Считайте случайные биты до текстового кодирования.
  3. Согласуйте значение в заголовке и разрешённых элементах.
  4. Не назначайте nonce произвольной пользовательской разметке.
  5. При кешировании проверяйте согласованность заголовка и документа.
  6. Не считайте nonce расходуемым разрешением одного исполнения.
  7. Сохраняйте безопасное построение содержимого разрешённых элементов.
Открытые основания

Первоисточники

  • Стандарт2
  • Документация2
  • Первичная спецификация
    Content Security Policy Level 3 World Wide Web Consortium · W3C Working Draft, 5 May 2026 · проверено

    Определяет CSP directives, source lists, nonce-source и browser enforcement для загрузки и исполнения content.

    Утверждения: 01 · 03 · 05

  • Первичная спецификация
    Content Security Policy Level 3 World Wide Web Consortium · W3C Working Draft, 13 August 2026 · проверено

    Прочитана сохранённая локальная HTML-копия. Алгоритмы разделов 6–7 отделены от ненормативных примеров раздела 8; редакция проекта не означает проверку поддержки каждого браузера.

    Утверждения: 02 · 04

  • Официальная документация
    Cross Site Scripting Prevention Cheat Sheet OWASP Foundation · OWASP Cheat Sheet Series, checked 30 August 2026 · проверено

    Определяет context-specific output encoding и safe sinks; CSP и WAF рассматривает как дополнительные, а не основные XSS controls.

    Утверждения: 05

  • Официальная документация
    Input Validation Cheat Sheet OWASP Foundation · OWASP Cheat Sheet Series, checked 30 August 2026 · проверено

    Задаёт раннюю server-side проверку syntax и semantics, allowlist approach и границу с output encoding.

Карта знаний

Связанные понятия

Из знания — в навык

Курсы по теме

Подтвердите действие