Utilia

SRI-tætigildaframleiðandi

Búðu til Subresource Integrity (SRI) sha384-tætigildi fyrir JavaScript- eða CSS-skrá og afritaðu tilbúin integrity- og crossorigin-eigindi, staðbundið.

Límdu inn innihald skrárinnar eða opnaðu skrána sjálfa: þetta verkfæri sækir ekki vefslóðir. Til að lesa skriftu af annarri síðu þyrfti sá netþjónn að leyfa það (CORS) eða okkar eigin netþjónn að sækja hana fyrir þig, og ekkert sem þú býrð til tætigildi af hér fer nokkurn tímann úr vafranum þínum. Búðu til tætigildi af nákvæmlega þeirri skrá sem þú ætlar að bera fram.

Tætigildi af

Textinn er hakkaður sem UTF-8. Vafrar breyta Windows-línulokum (CRLF) í LF í límdum texta og eitt breytt bæti brýtur tætigildið: opnaðu skrána sjálfa ef þú ert í vafa.

Reiknirit

Slóðin er aðeins skrifuð í kóðabútinn, henni er aldrei beðið um. Skildu hana eftir tóma til að nota skráarheitið.

Hvernig á að búa til SRI-tætigildi

  1. Undir Tætigildi af skaltu velja Límdur kóði eða Skrár.
  2. Límdu nákvæmt innihald skriftunnar eða stílblaðsins inn í Innihald skriftu eða stílblaðs og ýttu á Búa til SRI-tætigildi, eða slepptu einni eða fleiri .js og .css skrám á sleppisvæðið. Tætigildin uppfærast um leið og þú slærð inn.
  3. Hafðu SHA-384 (mælt með) hakað, eða bættu við SHA-256 og SHA-512. Hvert valið reiknirit bætir einum hluta við gildið.
  4. Veldu Merki (sjálfvirkt eftir skráarheiti, <script>, <script type="module"> eða <link rel="stylesheet">), skrifaðu Slóð auðlindar í kóðabútinn (valfrjálst) og veldu crossorigin hátt.
  5. Afritaðu integrity-gildi eða heila merkið.
  6. Til að athuga merki sem þú notar nú þegar skaltu líma gildi þess eða allt merkið inn í Athuga fyrirliggjandi integrity-gildi (valfrjálst).

Hvað Subresource Integrity gerir

Þegar síða hleður skriftu af CDN treystir vafrinn því sem sá netþjónn skilar. Ef brotist er inn í CDN-ið eða skránni er breytt keyrir breytti kóðinn með fullan aðgang að síðunni þinni. Subresource Integrity (W3C SRI) lokar þessu gati: þú birtir væntanlegt tætigildi skrárinnar í integrity eigindinu, vafrinn reiknar tætigildi þess sem hann sækir og neitar að keyra skriftuna eða beita stílblaðinu ef þetta tvennt er ólíkt.

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

Gildið er nafn reikniritsins, bandstrik og Base64-kóðað tætigildi bæta skrárinnar. Þetta dæmi er tætigildi alert('Hello, world.'); úr SRI-skilgreiningunni. Þegar mörg tætigildi eru talin upp líta vafrar aðeins á sterkasta reikniritið sem er til staðar og samþykkja skrána ef hvaða tætigildi þess reiknirits sem er samsvarar. Þannig getur vefur talið upp tvær útgáfur af skrá meðan á útgáfuskiptum stendur.

Af hverju crossorigin er nauðsynlegt

Fyrir skrá á öðrum uppruna getur vafrinn aðeins athugað heilleika hennar ef svarið er sótt í CORS-ham, þannig að merkið þarf crossorigin eigindi og netþjónninn verður að svara með Access-Control-Allow-Origin haus. Notaðu anonymous (engar vefkökur) fyrir opinber CDN; use-credentials er fyrir sjaldgæfar einkaauðlindir. Án CORS lokar vafrinn á skrána í stað þess að hlaða henni óathugaðri.

Af hverju verkfærið sækir ekki vefslóðir

Þetta verkfæri býr aðeins til tætigildi af kóða sem þú límir inn eða skrám sem þú opnar. Að sækja skriftu af vefslóð innan síðunnar myndi aðeins virka ef sá netþjónn leyfir lestur milli uppruna, og að komast framhjá því myndi krefjast netþjóns sem sækir skrána fyrir þig, sem sæi líka það sem þú býrð til tætigildi af. Allt hér keyrir í vafranum þínum. Einfaldasta aðferðin er að sækja nákvæmlega þá skrá sem þú ætlar að vísa í (sömu útgáfu og sama smækkaða smíð) og opna hana hér.

Algengar spurningar

Hvaða reiknirit á ég að nota?

SHA-384 er venjulegt val og það sem flest CDN birta. SHA-256 og SHA-512 eru einnig studd af öllum nútímavöfrum. MD5 og SHA-1 eru ekki leyfð í SRI.

Tætigildið mitt er rétt en vafrinn lokar samt á skrána. Af hverju?

Athugaðu að netþjónninn sendi Access-Control-Allow-Origin og að merkið hafi crossorigin. Gakktu líka úr skugga um að CDN-ið beri fram sömu bæti: önnur útgáfa, sjálfvirkur smækkari eða vantandi lokalínuskil breyta öll tætigildinu.

Af hverju gefur límdi kóðinn minn annað tætigildi en skráin?

Vafrar breyta Windows-línulokum (CRLF) í LF í textareitum og ritill getur bætt við eða fjarlægt bætaröðarmerki (BOM) eða lokalínuskil. Opnaðu skrána sjálfa til að fá tætigildi af nákvæmum bætum hennar.

Þarf ég SRI fyrir skrár á mínu eigin léni?

Það ver gegn breytingum sem eru gerðar eftir að þú reiknaðir tætigildið, þannig að það skiptir mestu máli fyrir þriðja aðila. Fyrir eigin skrár er yfirleitt auðveldara að nota búnt sem býr til tætigildin við smíði.

Virkar SRI fyrir myndir eða leturgerðir?

integrity eigindið er stutt á <script> og <link rel="stylesheet"> (og á <link rel="preload"> eða modulepreload fyrir þessar). Myndir og leturgerðir geta ekki notað það.