SRI maišos kodų generatorius
Sugeneruokite Subresource Integrity maišos kodą bet kuriam JS arba CSS failui ir gaukite paruoštą įterpti script arba link fragmentą.
🔒 Visiškai apdorojama jūsų naršyklėje – niekas, kurį čia įvedėte, niekada neįkeliama.
Rezultatas
Subresource Integrity (SRI) leidžia naršyklei patikrinti, ar iš CDN arba trečiosios šalies serverio gaunamas scenarijus ar stilių lentelė nebuvo pakeisti prieš juos vykdant – naršyklė apskaičiuoja atsisiųstų baitų maišos kodą ir atsisako vykdyti failą, jei šis kodas neatitinka jūsų paskelbto integrity atributo. Šis įrankis apskaičiuoja tą kodą bet kuriam įmestam JS arba CSS failui, viską atlikdamas jūsų naršyklės kortelėje, todėl pats failas niekada nepalieka jūsų kompiuterio, kad būtų sumaišytas.
Bendros paskirties maišos įrankis nesukurs tinkamos SRI reikšmės: specifikacija reikalauja base64 koduoto maišos kodo, o ne šešioliktainės eilutės, kurią išveda dauguma kontrolinių sumų įrankių, ir pripažįsta tik tris algoritmus – sha256, sha384 ir sha512. Šis generatorius apriboja algoritmo pasirinkimą tik šiais trimis ir užkoduoja rezultatą teisingu būdu, o tada žengia dar vieną žingsnį – suformuoja visą HTML fragmentą su vietos rezervavimo ženklu src arba href lauke, kurį prieš kopijuodami galite redaguoti vietoje.
Po gaubtu failas nuskaitomas naudojant File API, maišomas naudojant įprastą crypto.subtle.digest() realizaciją, o gauti baitai į base64 konvertuojami mažomis dalimis, o ne viena didele išskleidimo operacija – tai detalė, kuri tampa svarbi, kai sujungtas JS failas viršija maždaug šimtą tūkstančių baitų, nes tuomet naivus konvertavimo būdas gali pasiekti naršyklės iškvietimų dėklo ribą.
sha384 pasirinktas pagal numatymą, nes tai algoritmas, dažniausiai rekomenduojamas SRI pavyzdžiuose ir dokumentacijoje, užtikrinantis pusiausvyrą tarp maišos kodo ilgio ir atsparumo kolizijoms, tačiau sha256 ir sha512 yra pasiekiami vienu spustelėjimu, jei kūrimo proceso grandinė ar CDN teikėjas nurodo kitokį reikalavimą.