Subresource Integrity: как защитить сайт от взломанного CDN
Атрибут integrity заставляет браузер отвергнуть скрипт или стиль с CDN, если файл подменили. Как сгенерировать хэш и когда SRI не нужен.
Проверено по источникам: 11 октября 2026 г.

- sha384типичный алгоритм хэша для SRI
- 1атрибут integrity защищает от подмены файла
- 7публичных CDN проверяет Awe Check
В чём риск
Сайт подключает jQuery, Bootstrap или Tailwind с публичного CDN. Если CDN взломают или автор библиотеки выпустит вредную версию, чужой код выполнится у всех ваших посетителей: сможет красть данные форм и подменять платёжные страницы.
Как включить
К тегу добавляют атрибут integrity с хэшем эталонного файла и crossorigin. Браузер сверит файл с хэшем и откажется выполнять, если он отличается.
<script src="https://cdn.jsdelivr.net/npm/lib@1.2.3/dist/lib.min.js" integrity="sha384-…" crossorigin="anonymous"></script>
Как получить хэш и когда SRI не нужен
- Хэш считает команда openssl dgst -sha384 -binary файл | openssl base64 -A, или его показывает сам CDN.
- Фиксируйте версию библиотеки в адресе: файл «latest» меняется, и хэш перестанет совпадать.
- Для скриптов, которые сервис обновляет сам (Google Tag Manager, Яндекс.Метрика), SRI не ставят, а риск закрывают политикой CSP.
- Проще всего хранить библиотеки у себя: тогда подмена возможна только при взломе вашего сервера.
Частые вопросы
Что будет, если хэш не совпал?
Браузер заблокирует файл, а страница может сломаться. Поэтому SRI включают вместе с фиксированной версией библиотеки и проверяют на тестовой копии.
Чем SRI отличается от CSP?
CSP решает, откуда можно грузить код. SRI проверяет, что файл с разрешённого адреса не подменён. Вместе они дают глубокую защиту.
Какие CDN проверяет Awe Check?
Популярные хранилища библиотек: jsDelivr, cdnjs, unpkg, jQuery CDN, Bootstrap CDN, Google Hosted Libraries и Tailwind CDN. Сервисы вроде Google Tag Manager не учитываются.
