Атрибут integrity

Атрибут integrity содержит хэш файла, расположенного на стороннем сервере. Такой хэш нужен для проверки того, что это тот самый запрашиваемый, а не какой-нибудь поддельный файл.

Для проверки целостности файла сперва делается его хэш, например, с помощью ресурса srihash.org. В строке пишется адрес файла и выбирается алгоритм хэширования (к примеру, SHA-256), как это показано на рис. 1.

Генератор хэша

Рис. 1. Генератор хэша

Браузер загружает файл скрипта, указанный в атрибуте src элемента <script>, создаёт хэш файла и сравнивает полученное значение со значением атрибута integrity. Если хэши различаются, то исполнение скрипта блокируется в целях безопасности.

Синтаксис

<script src="<адрес>" integrity="<хэш файла>"></script>>

Значения

В качестве значения указывается хэш файла в следующем формате:

<алгоритм>-<хэш>

Название алгоритма пишется слитно без дефисов, к примеру, для алгоритма SHA-256 указываем sha256.

Значение по умолчанию

Нет.

Пример

<!DOCTYPE html> <html lang="ru"> <head> <title>integrity</title> <meta charset="utf-8"> </head> <body> <h2><span class="text"></span></h2> <script src="https://unpkg.com/typed.js@2.1.0/dist/typed.umd.js" integrity="sha256-WEJEZ6uz+kswKoDHEI/iDKgyjk7LQnXPGgTbP6X4Pyc=" crossorigin="anonymous"></script> <script> var typed = new Typed('.text', { strings: ['Библиотека typed.js','Имитирует набор текста на клавиатуре'], cursorChar: '_', typeSpeed: 100, loop: true }); </script> </body> </html>

Браузеры

17 45 32 11 43
45 43 73 11.3

В таблице браузеров применяются следующие обозначения.

  • — элемент полностью поддерживается браузером;
  • — элемент браузером не воспринимается и игнорируется;
  • — при работе возможно появление различных ошибок, либо элемент поддерживается с оговорками.

Число указывает версию браузреа, начиная с которой элемент поддерживается.