Атрибут integrity тега <script>
Описание
Атрибут integrity обеспечивает проверку целостности загружаемого скрипта путем сравнения его хэша с указанным значением. Это защищает от подмены скриптов при загрузке с внешних ресурсов.
<script
src="https://cdn.example.com/script.js"
integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC"
crossorigin="anonymous">
</script>
Ключевые характеристики:
| Параметр | Описание |
|---|---|
| Алгоритмы хеширования | sha256, sha384, sha512 |
| Формат значения | префикс-алгоритм + хэш в base64 |
| Поддержка браузеров | Все современные браузеры (кроме IE) |
Как сгенерировать хэш:
Для генерации SRI-хэша:
- Откройте терминал
- Выполните команду:
openssl dgst -sha384 -binary файл.js | openssl base64 -A - Используйте полученное значение в атрибуте integrity
Рекомендации по применению:
- Всегда используйте вместе с
crossorigin="anonymous" - Обновляйте хэш при изменении скрипта
- Оптимальный алгоритм - sha384
- Проверяйте поддержку в целевых браузерах
Обработка ошибок:
При несовпадении хэша:
- Скрипт не выполняется
- В консоль выводится сообщение об ошибке
- Генерируется событие
error
Важно: Этот атрибут критически важен для безопасности при использовании:
- Сторонних библиотек (jQuery, Bootstrap)
- Скриптов аналитики
- Ресурсов с CDN
- Критически важных приложений