SRI хаш генератор
Генерирајте Subresource Integrity (SRI) sha384 хашови за JavaScript или CSS датотека и копирајте ги готовите атрибути integrity и crossorigin, локално.
Залепете ја содржината на датотеката или отворете ја самата датотека: оваа алатка не презема URL адреси. Читањето скрипта од друг сајт би барало тој сервер да го дозволи (CORS) или наш сервер да ја презема наместо вас, а ништо што го хаширате овде никогаш не го напушта вашиот прелистувач. Хаширајте ја точната датотека што ќе ја објавите.
Текстот се хашира како UTF-8. Прелистувачите ги претвораат крајевите на редови на Windows (CRLF) во LF во залепениот текст, а еден изменет бајт го менува хашот: во сомнеж, отворете ја самата датотека.
URL адресата само се запишува во примерот, никогаш не се бара. Оставете празно за да се користи името на датотеката.
Како да генерирате SRI хаш
- Под Хаш изберете Залепен код или Датотеки.
- Залепете ја точната содржина на скриптата или стилскиот лист во Содржина на скрипта или стилски лист и притиснете Генерирај SRI хаш, или спуштете една или повеќе датотеки
.jsи.cssна површината за спуштање. Хашовите се ажурираат додека пишувате. - Оставете штиклирано SHA-384 (препорачано) или додајте SHA-256 и SHA-512. Секој штиклиран алгоритам додава еден токен во вредноста.
- Изберете Ознака (автоматски според името на датотеката,
<script>,<script type="module">или<link rel="stylesheet">), впишете URL на ресурсот за примерот (незадолжително) и изберете режим наcrossorigin. - Копирајте ја вредност на integrity или целата ознака.
- За да проверите ознака што веќе ја користите, залепете ја нејзината вредност или целата ознака во Проверка на постоечка вредност на integrity (незадолжително).
Што прави Subresource Integrity
Кога страницата вчитува скрипта од CDN, прелистувачот му верува на она што ќе го врати тој сервер. Ако CDN е компромитиран или датотеката е изменета, изменетиот код се извршува со целосен пристап до вашата страница. Subresource Integrity (W3C SRI) ја затвора таа празнина: го објавувате очекуваниот хаш на датотеката во атрибутот integrity, прелистувачот го хашира она што го презема и одбива да ја изврши скриптата или да го примени стилскиот лист ако двата не се совпаѓаат.
<script src="https://cdn.example.com/lib.min.js"
integrity="sha384-H8BRh8j48O9oYatfu5AZzq6A9RINhZO5H16dQZngK7T62em8MUt1FLm52t+eX6xO"
crossorigin="anonymous"></script>
Вредноста е името на алгоритамот, цртичка и Base64-кодираниот дигест од бајтите на датотеката. Тој пример е хашот на alert('Hello, world.'); од спецификацијата на SRI. Кога се наведени повеќе хашови, прелистувачите гледаат само најсилниот присутен алгоритам и ја прифаќаат датотеката ако кој било хаш од тој алгоритам се совпаѓа. Така сајтот може да наведе две верзии на датотека за време на постепено воведување.
Зошто crossorigin е задолжителен
За датотека од друг извор (origin), прелистувачот може да го провери нејзиниот интегритет само ако одговорот е преземен во CORS режим, па ознаката бара атрибут crossorigin, а серверот мора да одговори со заглавие Access-Control-Allow-Origin. Користете anonymous (без колачиња) за јавни CDN; use-credentials е за ретки приватни ресурси. Без CORS, прелистувачот ја блокира датотеката наместо да ја вчита непроверена.
Зошто оваа алатка не презема URL адреси
Алатката хашира само код што го залепувате или датотеки што ги отворате. Преземањето скрипта од нејзината URL адреса во самата страница би работело само кога тој сервер дозволува читање од друг извор, а заобиколувањето на тоа би барало сервер да ја презема датотеката наместо вас, што би видел и што хаширате. Сè овде се извршува во вашиот прелистувач. Наједноставниот метод е да ја преземете точната датотека на која ќе упатувате (иста верзија и истата минимизирана верзија) и да ја отворите овде.
Често поставувани прашања
Кој алгоритам да го користам?
SHA-384 е вообичаениот избор и тоа го објавуваат повеќето CDN. SHA-256 и SHA-512 исто така ги поддржуваат сите современи прелистувачи. MD5 и SHA-1 не се дозволени во SRI.
Мојот хаш е точен, но прелистувачот сепак ја блокира датотеката. Зошто?
Проверете дали серверот испраќа Access-Control-Allow-Origin и дали ознаката има crossorigin. Погрижете се и CDN да ги служи истите бајти: различна верзија, автоматски минимизатор или недостасувачки завршен прекин на ред го менуваат хашот.
Зошто залепениот код дава поинаков хаш од датотеката?
Прелистувачите ги претвораат крајевите на редови на Windows (CRLF) во LF во текстуалните полиња, а уредникот може да додаде или отстрани ознака за редослед на бајти или завршен нов ред. Отворете ја самата датотека за да ги хаширате нејзините точни бајти.
Дали ми треба SRI за датотеки на мојот домен?
Штити од промени направени откако сте го пресметале хашот, па е најважен за надворешни сервери. За вашите датотеки, алатка за пакување што ги генерира хашовите при градењето обично е полесна.
Дали SRI работи за слики или фонтови?
Атрибутот integrity е поддржан на <script> и <link rel="stylesheet"> (и на <link rel="preload"> или modulepreload за нив). Слики и фонтови не можат да го користат.
Поврзани алатки
- Хеш генератор Генерирајте MD5, SHA-1, SHA-256 и SHA-512 хешови на текст или датотеки со која било големина и проверете контролни суми. Сè работи во прелистувачот.
- Base64 кодер и декодер Бесплатен Base64 кодер и декодер со целосна UTF-8 поддршка и опција base64url безбедна за URL. Работи во прелистувачот, ништо не се качува.
- HAR прегледувач Отворете .har датотека во прелистувачот за да ги прегледате барањата, заглавијата, колачињата, времињата и водопадот, па исчистете ја пред споделување.