Выбор ответа Middle Безопасность фронтенда обновлено

Зачем nonce в CSP

Вопрос

Политика script-src 'nonce-abc123'. Какой скрипт на странице выполнится?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: <script nonce="abc123"init()</script. nonce это случайная строка, которую сервер генерирует на каждый ответ и ставит в заголовок и в доверенные теги <script.

Варианты ответа

  1. <script nonce="abc123">init()</script>правильный ответ
  2. <script>init()</script>
  3. <button onclick="init()">
  4. Ни один инлайн-скрипт, nonce работает только для внешних файлов

Разбор

nonce это случайная строка, которую сервер генерирует на каждый ответ и ставит в заголовок и в доверенные теги <script>. Выполнятся только скрипты с совпадающим nonce, а внедрённый атакующим тег nonce не знает. Обычный инлайн без nonce заблокирован. Инлайн-обработчики вроде onclick nonce не принимают вовсе. nonce работает и для инлайн, и для внешних скриптов.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме