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

Хеши обработчиков событий CSP

Определение

Разрешение обработчика по хешу (unsafe-hashes) — выражение политики CSP, которое распространяет сверку по хешу на обработчики в атрибутах, атрибуты стиля и ссылки с кодом в адресе. Хеш разрешает конкретный текст, но не подтверждает, что он запустится ожидаемым способом.

Также ищут: CSP unsafe-hashes · unsafe-hashes · разрешение обработчика по хешу

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

Это важно при переносе старых интерфейсов с обработчиками в HTML. Разрешённая строка с чувствительным действием может оказаться пригодной для другого запуска, поэтому хеш не заменяет проверку контекста и полномочий.

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

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

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

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

  1. Обычное сопоставление хеша встроенного script не применяется автоматически к обработчикам в атрибутах. Выражение unsafe-hashes расширяет эту ветку сопоставления на обработчики, атрибуты стиля и переходы с программой в адресе.

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

  2. Проверка nonce в алгоритме встроенного кода относится к элементам script и style, а не к атрибутам обработчиков. Поэтому nonce на HTML-элементе сам по себе не даёт обработчику события тот же допуск.

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

  3. В примере unsafe-hashes разрешается хеш текста самого обработчика, например вызова doSubmit(), а не всей кнопки с её атрибутами. Изменение текста обработчика требует заново проверить соответствие разрешённому хешу.

    Граница применимости: Проект CSP Level 3 от 13 августа 2026 года, 6.7.3.3 и пример 8.3. Имя функции в примере условное; приведённый способ не является доказательством её безопасного поведения.

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

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

  5. Допуск старого обработчика по хешу не делает исполняемый атрибут безопасным местом для непроверенных данных. Для новых страниц пояснение CSP рекомендует избегать unsafe-hashes; кодирование и безопасные точки вывода выбирают по реальному контексту.

    Граница применимости: Пояснение 8.3 проекта CSP 3 от 13 августа 2026 года и принятые рекомендации OWASP по XSS; рекомендация не представлена как безусловный запрет стандарта.

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

Не путать

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

Nonce сопоставляет значение элемента script или style. Для обработчика в атрибуте действует другой путь допуска; простое добавление nonce к кнопке его не создаёт.

Хеши обработчиков событий CSP Контекстное кодирование вывода

Хеш допускает определённый код, а контекстное кодирование помогает вывести данные. Эти меры не превращают исполняемый атрибут в инертный атрибут в кавычках.

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

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

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

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

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

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

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

  • Официальная документация
    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

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

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

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