SRI Hash Generator
Gumawa ng Subresource Integrity (SRI) sha384 hash para sa JavaScript o CSS file at kopyahin ang handang integrity at crossorigin attribute, nang lokal.
I-paste ang nilalaman ng file o buksan mismo ang file: hindi nagda-download ng mga URL ang tool na ito. Kailangang payagan ng server (CORS) ang pagbasa ng script mula sa ibang site, o kailangan ng sarili naming server na kukuha nito para sa iyo, at walang kahit anong ihina-hash mo rito ang umaalis sa iyong browser. I-hash ang eksaktong file na ihahain mo.
Hina-hash ang text bilang UTF-8. Ginagawang LF ng mga browser ang mga line ending ng Windows (CRLF) sa na-paste na text, at sinisira ng isang nabagong byte ang hash: buksan mismo ang file kapag nag-aalinlangan.
Isinusulat lang ang URL sa snippet, hindi ito kailanman hinihiling. Iwanang walang laman para gamitin ang pangalan ng file.
Paano gumawa ng SRI hash
- Sa ilalim ng I-hash, piliin ang Na-paste na code o Mga file.
- I-paste ang eksaktong nilalaman ng script o stylesheet sa Nilalaman ng script o stylesheet at pindutin ang Gumawa ng SRI hash, o i-drop ang isa o higit pang
.jsat.cssfile sa drop zone. Nag-a-update ang mga hash habang nagta-type ka. - Panatilihing naka-tick ang SHA-384 (inirerekomenda), o magdagdag ng SHA-256 at SHA-512. Bawat naka-tick na algorithm ay nagdaragdag ng isang token sa halaga.
- Piliin ang Tag (awtomatiko mula sa pangalan ng file,
<script>,<script type="module">o<link rel="stylesheet">), ilagay ang URL ng resource para sa snippet (opsyonal) at piliin ang mode ngcrossorigin. - Kopyahin ang halaga ng integrity o ang kumpletong tag.
- Para suriin ang tag na ginagamit mo na, i-paste ang halaga nito o ang buong tag sa Suriin ang umiiral na halaga ng integrity (opsyonal).
Ano ang ginagawa ng Subresource Integrity
Kapag naglo-load ang isang page ng script mula sa CDN, pinagkakatiwalaan ng browser ang anumang ibalik ng server na iyon. Kung nakompromiso ang CDN o nabago ang file, tatakbo ang binagong code na may buong access sa iyong page. Sinasara ng Subresource Integrity (W3C SRI) ang puwang na iyon: inilalathala mo ang inaasahang hash ng file sa attribute na integrity, hina-hash ng browser ang dina-download nito, at tatanggi itong patakbuhin ang script o ilapat ang stylesheet kung magkaiba ang dalawa.
<script src="https://cdn.example.com/lib.min.js"
integrity="sha384-H8BRh8j48O9oYatfu5AZzq6A9RINhZO5H16dQZngK7T62em8MUt1FLm52t+eX6xO"
crossorigin="anonymous"></script>
Ang halaga ay ang pangalan ng algorithm, isang gitling at ang Base64-encoded na digest ng mga byte ng file. Ang halimbawang iyon ay ang hash ng alert('Hello, world.'); mula sa SRI specification. Kapag maraming hash ang nakalista, ang pinakamalakas na algorithm lang na naroroon ang tinitingnan ng mga browser at tinatanggap nila ang file kung tumugma ang alinmang hash ng algorithm na iyon. Ganito nakakapaglista ang isang site ng dalawang bersyon ng file habang may rollout.
Bakit kailangan ang crossorigin
Para sa file sa ibang origin, masusuri lang ng browser ang integrity nito kung kinuha ang response sa CORS mode, kaya kailangan ng tag ang attribute na crossorigin at dapat sumagot ang server ng header na Access-Control-Allow-Origin. Gamitin ang anonymous (walang cookie) para sa mga pampublikong CDN; ang use-credentials ay para sa bihirang pribadong resource. Kung walang CORS, haharangin ng browser ang file sa halip na i-load ito nang hindi sinusuri.
Bakit hindi kumukuha ng mga URL ang tool na ito
Hina-hash lang ng tool na ito ang code na pine-paste mo o mga file na binubuksan mo. Gagana lang ang pag-download ng script mula sa URL nito sa loob ng page kung pinapayagan ng server na iyon ang cross-origin na pagbasa, at kakailanganin ng paraan para malusutan iyon ang isang server na kukuha ng file para sa iyo, na makakakita rin sa ihina-hash mo. Lahat dito ay tumatakbo sa iyong browser. Ang pinakasimpleng paraan ay i-download ang eksaktong file na ire-reference mo (parehong bersyon at parehong minified na build) at buksan ito rito.
Mga madalas itanong
Aling algorithm ang dapat kong gamitin?
Ang SHA-384 ang karaniwang pagpipilian at ang inilalathala ng karamihan ng CDN. Sinusuportahan din ng lahat ng makabagong browser ang SHA-256 at SHA-512. Hindi pinapayagan sa SRI ang MD5 at SHA-1.
Tama ang hash ko pero hinaharang pa rin ng browser ang file. Bakit?
Suriin kung nagpapadala ang server ng Access-Control-Allow-Origin at kung may crossorigin ang tag. Tiyakin ding pareho ang mga byte na inihahain ng CDN: ang ibang bersyon, awtomatikong minifier o nawawalang huling line break ay pawang nagbabago sa hash.
Bakit iba ang hash ng na-paste kong code sa hash ng file?
Ginagawang LF ng mga browser ang mga line ending ng Windows (CRLF) sa mga text field, at maaaring magdagdag o mag-alis ng byte order mark o huling newline ang editor. Buksan mismo ang file para ma-hash ang eksaktong mga byte nito.
Kailangan ko ba ng SRI para sa mga file sa sarili kong domain?
Pinoprotektahan ka nito laban sa mga pagbabagong ginawa matapos mong kuwentahin ang hash, kaya pinakamahalaga ito para sa mga third-party na host. Para sa sarili mong mga file, kadalasang mas madali ang bundler na gumagawa ng mga hash sa build time.
Gumagana ba ang SRI sa mga larawan o font?
Sinusuportahan ang attribute na integrity sa <script> at <link rel="stylesheet"> (at sa <link rel="preload"> o modulepreload para sa mga ito). Hindi ito magagamit ng mga larawan at font.
Mga kaugnay na tool
- Hash Generator Gumawa ng MD5, SHA-1, SHA-256 at SHA-512 hash ng text o mga file na anumang laki, at i-verify ang mga checksum. Lahat ay tumatakbo sa iyong browser.
- Base64 Encoder at Decoder Libreng Base64 encoder at decoder na may buong UTF-8 support at URL-safe na base64url. Gumagana sa iyong browser, walang ina-upload na kahit ano.
- HAR File Viewer Buksan ang .har file sa iyong browser para suriin ang mga request, header, cookie, timing at waterfall, at i-sanitize bago ibahagi. Walang ina-upload.