Накратко
Subresource Integrity сравнява изтегления ресурс с предварително зададен криптографски хеш. При обновяване на файла трябва да бъде обновена и очакваната стойност.
Полезно е да знаеш
Страница може да използва програмен файл или стил от външен доставчик. Адресът показва откъде се изтегля ресурсът, но понякога е нужно да се провери и точното му съдържание. Subresource Integrity, съкратено SRI, позволява към включването на ресурса да бъде добавен очакван криптографски хеш. Браузърът сравнява получените данни с тази стойност. Целта е да не бъде използван файл, чието съдържание не отговаря на предварително очакваното. [1]
Хешът може да се разглежда като стойност, изчислена от конкретните байтове. В HTML тя се поставя в атрибута integrity за поддържаните включвания. Синтаксисът обозначава и използвания алгоритъм, например SHA-384. [1] Този механизъм не трябва да се бърка с името на файла. Две различни версии могат да имат еднакво видимо име, а един и същ файл може да бъде преименуван. Проверката се отнася до съдържанието, а не до удобството на избраното название.
Да си представим измислена галерия, която използва външна библиотека за увеличаване на снимките. Екипът е избрал определена версия и е изпитал бутоните, клавиатурното управление и затварянето на изображението. В документацията може да се запише коя версия е одобрена и откъде идва тя. SRI добавя техническа проверка към това решение. Така изборът на версия и механизмът за проверка имат различни, ясно описани роли в подготовката на страницата.
При ресурси от друг произход SRI е свързан и с CORS. Често се използва атрибутът crossorigin със стойност anonymous, но необходимо е и сървърът на ресурса да позволява съответния достъп. [1, 2] Атрибутът определя поведението на заявката по отношение на CORS и идентификационните данни. Стойността anonymous не е обещание за обща анонимност на посетителя. Това е конкретна настройка на заявката, чието значение трябва да се чете в контекста на включвания елемент. [2]
При обновяване на библиотеката не е достатъчно механично да се смени адресът и да се запази старият хеш. Новото съдържание трябва да има съответстваща очаквана стойност. [1] Практическият процес може да бъде подреден така: избира се версия, проверява се произходът ѝ, изпитва се функцията и се актуализира включването. След това страницата се отваря отново, за да се установи дали ресурсът действително е приет. Тази последователност прави обновяването проследимо.
Полезният резултат за поддръжката е кратък запис, който свързва компонент, версия, адрес и проверка. Той помага и при връщане към предишно състояние: екипът знае коя комбинация е работила, вместо да събира отделни стойности по памет. SRI има тясна, но ясна задача в този процес. То проверява съответствието на конкретен файл, докато решението дали този файл е подходящ за сайта остава част от техническата и продуктовата оценка.
Източници
За повече подробности и проверка на информацията: