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

Хеш внешнего скрипта в CSP

Определение

Хеш внешнего скрипта в CSP — разрешённое политикой значение, с которым браузер сверяет хеши из атрибута integrity у подключаемого сценария. Совпасть должны все распознанные значения, а сами полученные байты файла проверяет механизм целостности ресурса.

Также ищут: CSP external script hash · external JavaScript hash CSP · integrity и CSP

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

Один подходящий хеш среди нескольких ещё не означает допуск по этой ветке CSP. При обновлении метаданных нужно согласовать все распознанные значения и затем проверить сам ресурс.

Связи из словаря

Карта понятия

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

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

  1. Ветка допуска внешнего скрипта по хешу CSP сравнивает данные integrity с hash-source политики. Она сама не вычисляет в этом шаге хеш тела ответа: блокировку несовпадающих байтов документ поручает механизму целостности ресурса.

    Граница применимости: Проект CSP Level 3 от 13 августа 2026 года, 6.7.2.4. Различие допуска метаданных CSP и проверки содержимого Subresource Integrity; полный алгоритм второго механизма здесь не описывается.

  2. Набор распознанных данных integrity должен быть непустым подмножеством разрешённых hash-source: для каждого значения требуется соответствие алгоритма и хеша в политике. Если одно распознанное значение не разрешено, вся эта ветка сопоставления даёт отказ.

    Граница применимости: Проект CSP Level 3 от 13 августа 2026 года, 6.7.2.4 и пояснение 8.4. Речь только о допуске по хешам: подходящий nonce или иной независимый способ допуска здесь не предполагается.

  3. При отсутствии данных integrity или пустом результате их разбора внешний скрипт не совпадает с политикой именно по ветке хешей. Наличие ожидаемого hash-source в заголовке само не создаёт недостающие метаданные запроса.

    Граница применимости: Проект CSP Level 3 от 13 августа 2026 года, 6.7.2.4. Это не утверждение, что скрипт не может быть разрешён другой веткой той же директивы.

  4. Нераспознанные данные integrity, включая неподдерживаемый алгоритм или невалидную запись, не участвуют в описанном сравнении с CSP. Но после их отбрасывания должен остаться хотя бы один распознанный и разрешённый хеш: только мусор не образует совпадение.

    Граница применимости: Проект CSP Level 3 от 13 августа 2026 года, 6.7.2.4 и пояснение 8.4. Не предлагает использовать невалидные данные; поддержка алгоритма рассматривается как условие разбора.

  5. Встроенный код для CSP хешируется после преобразования текста и кодирования UTF-8, а целостность внешнего ресурса проверяется по получаемому ресурсу. Поэтому перенос визуально того же кода из HTML во внешний файл не даёт права автоматически копировать старый хеш без проверки входных байтов.

    Граница применимости: Проект CSP Level 3 от 13 августа 2026 года, 6.7.3.3 и пояснение 8.4. Возможное различие входа хеширования, а не обещание, что хеш обязательно изменится при любом переносе.

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

Не путать

Хеш внешнего скрипта в CSP Одноразовое значение CSP (nonce)

Nonce даёт отдельный путь допуска элемента. Для допуска именно по хешам внешнего скрипта нужны согласованные данные integrity; отсутствие их нельзя восполнить одним ожидаемым хешем в политике.

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

Совпадение метаданных с одной директивой — только один этап. Проверка содержимого ресурса и ограничения других блокирующих политик остаются в силе.

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

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

  1. Укажите, что проверяется именно ветка hash-source.
  2. Зафиксируйте разобранные данные integrity.
  3. Убедитесь, что набор распознанных значений не пуст.
  4. Сопоставьте каждый распознанный хеш с политикой.
  5. Не учитывайте нераспознанные записи как доказательство целостности.
  6. Проверьте полученный ресурс отдельным механизмом целостности.
  7. При переносе встроенного кода сравните точный вход хеширования.
Открытые основания

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

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

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

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

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

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

Карта знаний

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

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

Курсы по теме

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