Utilia

SRI jaucējkoda ģenerators

Ģenerējiet Subresource Integrity (SRI) sha384 jaucējkodus JavaScript vai CSS failam un nokopējiet gatavus integrity un crossorigin atribūtus lokāli.

Ielīmējiet faila saturu vai atveriet pašu failu: šis rīks neielādē URL adreses. Skripta lasīšanai no citas vietnes šim serverim būtu jāatļauj piekļuve (CORS) vai mums būtu vajadzīgs savs serveris, kas to ielādē jūsu vietā, bet nekas, ko šeit jaucat, neatstāj jūsu pārlūkprogrammu. Jaukājiet tieši to failu, ko piegādāsiet.

Jaukt

Teksts tiek jaukts kā UTF-8. Pārlūkprogrammas ielīmētā tekstā Windows rindu beigas (CRLF) pārvērš par LF, un viens mainīts baits sabojā jaucējkodu: šaubu gadījumā atveriet pašu failu.

Algoritmi

URL tiek tikai ierakstīts fragmentā, tas netiek pieprasīts. Atstājiet tukšu, lai izmantotu faila nosaukumu.

Kā ģenerēt SRI jaucējkodu

  1. Sadaļā Jaukt izvēlieties Ielīmēts kods vai Faili.
  2. Ielīmējiet precīzu skripta vai stila lapas saturu laukā Skripta vai stila lapas saturs un nospiediet Ģenerēt SRI jaucējkodu, vai nometiet vienu vai vairākus .js un .css failus nomešanas zonā. Jaucējkodi atjaunojas rakstīšanas laikā.
  3. Atstājiet atzīmētu SHA-384 (ieteicams) vai pievienojiet SHA-256 un SHA-512. Katrs atzīmētais algoritms pievieno vērtībai vienu marķieri.
  4. Izvēlieties Tags (automātiski pēc faila nosaukuma, <script>, <script type="module"> vai <link rel="stylesheet">), ierakstiet Resursa URL fragmentam (neobligāti) un izvēlieties crossorigin režīmu.
  5. Nokopējiet integrity vērtība vai pilnu tagu.
  6. Lai pārbaudītu jau izmantotu tagu, ielīmējiet tā vērtību vai visu tagu laukā Pārbaudīt esošu integrity vērtību (neobligāti).

Ko dara Subresource Integrity

Kad lapa ielādē skriptu no CDN, pārlūkprogramma uzticas visam, ko serveris atgriež. Ja CDN ir kompromitēts vai fails ir mainīts, mainītais kods darbojas ar pilnu piekļuvi jūsu lapai. Subresource Integrity (W3C SRI) šo robu aizver: atribūtā integrity jūs publicējat faila paredzamo jaucējkodu, pārlūkprogramma sajauc lejupielādēto un atsakās izpildīt skriptu vai piemērot stila lapu, ja abi atšķiras.

<script src="https://cdn.example.com/lib.min.js"
        integrity="sha384-H8BRh8j48O9oYatfu5AZzq6A9RINhZO5H16dQZngK7T62em8MUt1FLm52t+eX6xO"
        crossorigin="anonymous"></script>

Vērtība ir algoritma nosaukums, domuzīme un faila baitu Base64 kodēts kopsavilkums. Šis piemērs ir alert('Hello, world.'); jaucējkods no SRI specifikācijas. Ja uzskaitīti vairāki jaucējkodi, pārlūkprogrammas ņem vērā tikai stiprāko klātesošo algoritmu un pieņem failu, ja atbilst kāds šī algoritma jaucējkods. Tā vietne var uzskaitīt divas faila versijas izplatīšanas laikā.

Kāpēc nepieciešams crossorigin

Failam citā izcelsmē pārlūkprogramma var pārbaudīt tā integritāti tikai tad, ja atbilde tiek ielādēta CORS režīmā, tāpēc tagam vajadzīgs atribūts crossorigin, un serverim jāatbild ar galveni Access-Control-Allow-Origin. Publiskiem CDN izmantojiet anonymous (bez sīkfailiem); use-credentials paredzēts retiem privātiem resursiem. Bez CORS pārlūkprogramma failu bloķē, nevis ielādē nepārbaudītu.

Kāpēc šis rīks neielādē URL

Šis rīks jauc tikai kodu, ko ielīmējat, vai failus, ko atverat. Skripta lejupielāde no tā URL lapas iekšienē darbotos tikai tad, ja serveris atļauj starpizcelsmes lasīšanu, un to apiet varētu tikai serveris, kas failu ielādē jūsu vietā un redzētu arī to, ko jaucat. Viss šeit darbojas jūsu pārlūkprogrammā. Vienkāršākā metode ir lejupielādēt tieši to failu, uz kuru atsauksieties (to pašu versiju un to pašu minificēto būvējumu), un atvērt to šeit.

Biežāk uzdotie jautājumi

Kuru algoritmu izmantot?

SHA-384 ir parastā izvēle, un to publicē lielākā daļa CDN. SHA-256 un SHA-512 atbalsta arī visas mūsdienu pārlūkprogrammas. MD5 un SHA-1 SRI nav atļauti.

Mans jaucējkods ir pareizs, bet pārlūkprogramma failu tomēr bloķē. Kāpēc?

Pārbaudiet, vai serveris sūta Access-Control-Allow-Origin un vai tagam ir crossorigin. Pārliecinieties arī, ka CDN piegādā tos pašus baitus: cita versija, automātisks minifikators vai trūkstošs noslēdzošais rindas pārtraukums maina jaucējkodu.

Kāpēc ielīmētajam kodam ir cits jaucējkods nekā failam?

Pārlūkprogrammas teksta laukos Windows rindu beigas (CRLF) pārvērš par LF, un redaktors var pievienot vai noņemt baitu secības zīmi vai noslēdzošo jaunu rindu. Atveriet pašu failu, lai jauktu tā precīzos baitus.

Vai SRI vajadzīgs failiem manā domēnā?

Tas aizsargā pret izmaiņām, kas veiktas pēc jaucējkoda aprēķināšanas, tāpēc visvairāk tas svarīgs trešo pušu resursdatoriem. Saviem failiem parasti ērtāks ir būvētājs, kas jaucējkodus ģenerē būvēšanas laikā.

Vai SRI darbojas attēliem vai fontiem?

Atribūtu integrity atbalsta <script> un <link rel="stylesheet"> (kā arī <link rel="preload"> vai modulepreload šiem resursiem). Attēliem un fontiem tas nav pieejams.