Вопрос проверяет понимание механизма hash в Content Security Policy для обеспечения безопасности веб-приложений.
Content Security Policy (CSP) — это механизм безопасности, который помогает предотвращать XSS-атаки, ограничивая источники загружаемых ресурсов. Однако inline-скрипты (код прямо в HTML) сложно контролировать, так как они не имеют внешнего источника. Для решения этой проблемы CSP поддерживает использование hash.
Hash — это криптографический хеш (например, SHA-256) от содержимого inline-скрипта или стиля. Вы вычисляете хеш от точного текста скрипта и добавляете его в политику CSP. Браузер при загрузке страницы вычисляет хеш от каждого inline-скрипта и сравнивает с разрешёнными. Если хеш совпадает, скрипт выполняется, иначе блокируется.
Допустим, у вас есть inline-скрипт:
<script>alert('Hello');</script>Вы вычисляете его SHA-256 хеш (например, с помощью онлайн-инструмента или командной строки). Получается строка вроде 'sha256-abc123...'. Затем добавляете в заголовок CSP:
Content-Security-Policy: script-src 'sha256-abc123...'Теперь браузер разрешит выполнение только этого конкретного скрипта. Если кто-то попытается внедрить другой inline-скрипт, его хеш не совпадёт, и он будет заблокирован.
Hash в CSP полезен, когда вы не можете отказаться от inline-скриптов (например, для аналитики или кастомных виджетов) и хотите сохранить строгую политику безопасности. Это альтернатива использованию nonce (одноразового токена).
Вывод: Используйте hash в CSP, когда нужно разрешить конкретные inline-скрипты без компрометации безопасности. Это надёжный способ защититься от XSS, сохраняя гибкость вёрстки.
Уровень
Рейтинг:
3
Сложность:
5
Навыки
HTML
Networks
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию