Generatur tal-Hash SRI
Iġġenera hashes Subresource Integrity (SRI) sha384 għal fajl JavaScript jew CSS u ikkopja l-attributi integrity u crossorigin lesti, lokalment.
Waħħal il-kontenut tal-fajl jew iftaħ il-fajl innifsu: din l-għodda ma tniżżilx URLs. Il-qari ta’ script minn sit ieħor ikun jeħtieġ li dak is-server jippermettih (CORS) jew server tagħna biex jgħabbih għalik, u xejn li tagħmel hash tiegħu hawn ma jħalli l-brawżer tiegħek. Agħmel hash tal-fajl eżatt li se tservi.
It-test jiġi hashjat bħala UTF-8. Il-brawżers jibdlu t-tmiem tal-linja ta’ Windows (CRLF) f’LF fit-test imwaħħal, u byte wieħed mibdul ibiddel il-hash: iftaħ il-fajl innifsu meta tkun fid-dubju.
L-URL jinkiteb biss fis-snippet, qatt ma jintalab. Ħallih vojt biex tuża l-isem tal-fajl.
Kif tiġġenera hash SRI
- Taħt Hash, agħżel Kodiċi mwaħħal jew Fajls.
- Waħħal il-kontenut eżatt tal-script jew tal-stylesheet f’Kontenut tal-script jew tal-stylesheet u agħfas Iġġenera hash SRI, jew waqqa’ fajl wieħed jew aktar
.jsu.cssfiż-żona tat-twaqqigħ. L-hashes jiġu aġġornati hekk kif tikteb. - Żomm SHA-384 (rakkomandat) immarkat, jew żid SHA-256 u SHA-512. Kull algoritmu mmarkat iżid token wieħed mal-valur.
- Agħżel it-Tag (awtomatiku mill-isem tal-fajl,
<script>,<script type="module">jew<link rel="stylesheet">), ikteb l-URL tar-riżorsa għas-snippet (fakultattiv) u agħżel il-modcrossorigin. - Ikkopja l-valur integrity jew it-tag kollu.
- Biex tiċċekkja tag li diġà tuża, waħħal il-valur tiegħu jew it-tag kollu f’Iċċekkja valur integrity eżistenti (fakultattiv).
X’jagħmel is-Subresource Integrity
Meta paġna tgħabbi script minn CDN, il-brawżer jafda kulma jibgħat dak is-server. Jekk is-CDN jiġi kompromess jew il-fajl jinbidel, il-kodiċi modifikat jaħdem b’aċċess sħiħ għall-paġna tiegħek. Is-Subresource Integrity (W3C SRI) issakkar dan it-toqba: tippubblika l-hash mistenni tal-fajl fl-attribut integrity, il-brawżer jagħmel hash ta’ dak li jniżżel, u jirrifjuta li jħaddem l-script jew japplika l-istylesheet jekk it-tnejn ma jaqblux.
<script src="https://cdn.example.com/lib.min.js"
integrity="sha384-H8BRh8j48O9oYatfu5AZzq6A9RINhZO5H16dQZngK7T62em8MUt1FLm52t+eX6xO"
crossorigin="anonymous"></script>
Il-valur huwa l-isem tal-algoritmu, dash u d-digest Base64 tal-bytes tal-fajl. Dak l-eżempju huwa l-hash ta’ alert('Hello, world.'); mill-ispeċifikazzjoni SRI. Meta jiġu elenkati diversi hashes, il-brawżers iħarsu biss lejn l-aqwa algoritmu preżenti u jaċċettaw il-fajl jekk xi hash ta’ dak l-algoritmu jaqbel. Hekk sit jista’ jelenka żewġ verżjonijiet ta’ fajl waqt rollout.
Għaliex crossorigin huwa meħtieġ
Għal fajl fuq origin ieħor, il-brawżer jista’ jiċċekkja l-integrità tiegħu biss jekk it-tweġiba tinġab fil-mod CORS, għalhekk it-tag jeħtieġ attribut crossorigin u s-server irid iwieġeb b’header Access-Control-Allow-Origin. Uża anonymous (mingħajr cookies) għal CDNs pubbliċi; use-credentials huwa għal riżorsi privati rari. Mingħajr CORS il-brawżer jibblokka l-fajl minflok jgħabbih mingħajr kontroll.
Għaliex din l-għodda ma tgħabbix URLs
Din l-għodda tagħmel hash biss ta’ kodiċi li twaħħal jew fajls li tiftaħ. It-tniżżil ta’ script mill-URL tiegħu ġewwa l-paġna jaħdem biss meta dak is-server jippermetti qari cross-origin, u li tevita dan ikun jeħtieġ server li jġib il-fajl għalik, li jara wkoll dak li tagħmel hash tiegħu. Kollox hawn jaħdem fil-brawżer tiegħek. L-aktar metodu sempliċi huwa li tniżżel il-fajl eżatt li se tirreferi (l-istess verżjoni u l-istess build minifikata) u tiftaħu hawn.
Mistoqsijiet frekwenti
Liema algoritmu għandi nuża?
SHA-384 huwa l-għażla tas-soltu u dak li l-biċċa l-kbira tas-CDNs jippubblikaw. SHA-256 u SHA-512 huma wkoll appoġġjati mill-brawżers moderni kollha. MD5 u SHA-1 mhumiex permessi f’SRI.
Il-hash tiegħi huwa korrett iżda l-brawżer xorta jibblokka l-fajl. Għaliex?
Iċċekkja li s-server jibgħat Access-Control-Allow-Origin u li t-tag għandu crossorigin. Kun żgur ukoll li s-CDN iservi l-istess bytes: verżjoni differenti, minifier awtomatiku jew qatgħa tas-linja finali nieqsa kollha jibdlu l-hash.
Għaliex il-kodiċi mwaħħal jagħti hash differenti mill-fajl?
Il-brawżers jikkonvertu t-tmiem tal-linja ta’ Windows (CRLF) għal LF fl-oqsma tat-test, u editur jista’ jżid jew jneħħi byte order mark jew qatgħa tas-linja finali. Iftaħ il-fajl innifsu biex tagħmel hash tal-bytes eżatti tiegħu.
Neħtieġ SRI għal fajls fuq id-dominju tiegħi stess?
Jipproteġi minn bidliet magħmula wara li kkalkulajt il-hash, għalhekk huwa l-aktar importanti għal hosts ta’ terzi persuni. Għall-fajls tiegħek stess, bundler li jiġġenera l-hashes waqt il-build normalment huwa aktar faċli.
SRI jaħdem għal immaġini jew fonts?
L-attribut integrity huwa appoġġjat fuq <script> u <link rel="stylesheet"> (u fuq <link rel="preload"> jew modulepreload għal dawn). L-immaġini u l-fonts ma jistgħux jużawh.
Għodod relatati
- Ġeneratur tal-hash Iġġenera hashes MD5, SHA-1, SHA-256 u SHA-512 ta’ test jew fajls ta’ kwalunkwe daqs, u vverifika checksums. Kollox jaħdem fil-brawżer tiegħek.
- Kodifikatur u dekodifikatur tal-Base64 Kodifikatur u dekodifikatur tal-Base64 b’xejn b’appoġġ sħiħ għall-UTF-8 u għażla base64url sigura għall-URL. Jaħdem kompletament fil-brawżer, xejn ma jittella’.
- Viewer tal-fajls HAR Iftaħ fajl .har fil-brawżer tiegħek biex tispezzjona talbiet, headers, cookies, ħinijiet u waterfall, imbagħad naddafh qabel taqsmu. Xejn ma jittella’.