Utilia

CSP-framleiðandi (Content Security Policy)

Búðu til Content-Security-Policy haus, meta tag og Report-Only útgáfu með forstillingum, nonce og SHA-256 hössum, og yfirfarðu fyrirliggjandi stefnu.

Byrja á forstillingu

Google-vefþjónarnir eru dæmi úr leiðbeiningum Google um CSP fyrir Google-merkið. Google breytir þeim af og til: athugaðu gildandi skjölun og fjarlægðu það sem þú notar ekki.

Tilskipanir

Heimildir aðskildar með bili. Skildu reit eftir auðan til að sleppa tilskipuninni (sóknartilskipanir falla þá aftur á default-src).

Flýtiviðbót

Nonce verður að vera nýtt tilviljunargildi í hverju svari, búið til af netþjóninum þínum og endurtekið í hverju <script nonce="…">. Fast nonce verndar ekkert.

Reikna hass fyrir innfellt skriftu eða stíl

Hassið nær yfir nákvæman texta milli taganna, þar með talin bil og línuskil: sérhver breyting krefst nýs hass. Innfelldir atburðameðhöndlarar (onclick=…) þurfa einnig 'unsafe-hashes'.

Brotaskýrslur

Bætir við report-uri (eldri vafrar) og report-to ásamt Reporting-Endpoints-haus.

Í <meta> tagi hunsa vafrar frame-ancestors, report-uri, report-to og sandbox, og Report-Only er ekki stutt. Settu tagið efst í <head>: það gildir aðeins um efni sem kemur á eftir því.

Úttekt á þessari stefnu

Greina fyrirliggjandi stefnu

Hvernig á að búa til stefnu

  1. Veldu upphafspunkt undir Byrja á forstillingu: Ströng (nonce + strict-dynamic), Læst kyrrstæð vefsíða, Dæmigerð vefsíða eða Dæmigerð + Google Analytics / Ads. Ritillinn opnast með forstillingunni fyrir dæmigerða vefsíðu.
  2. Lagaðu Tilskipanir. Hver reitur tekur heimildir aðskildar með bili; auður reitur sleppir tilskipuninni.
  3. Notaðu Flýtiviðbót til að bæta lykilorði við valda Tilskipun: 'self', 'none', 'unsafe-inline', 'strict-dynamic', https:, data: og fleira. Bæta við nonce setur inn tilviljunarkennt 128 bita nonce.
  4. Til að leyfa tiltekna innfellda skriftu án 'unsafe-inline' límdu hana (eða HTML-ið í kringum hana) inn í Reikna hass fyrir innfellt skriftu eða stíl og smelltu á Reikna SHA-256 og bæta við.
  5. Hakaðu við upgrade-insecure-requests ef einhverjar gamlar slóðir nota enn http:// og sláðu eftir atvikum inn Slóð skýrsluendapunkts (valfrjálst).
  6. Afritaðu HTTP-haus, Report-Only haus eða HTML tag. Úttekt á þessari stefnu uppfærist um leið og þú skrifar.

Til að yfirfara stefnu sem þú átt nú þegar límdu hana inn undir Greina fyrirliggjandi stefnu og smelltu á Greina stefnu; Hlaða í ritilinn afritar hana í reitina.

Hvað Content Security Policy gerir

CSP segir vafranum frá hvaða upprunum síða má hlaða skriftum, stílum, myndum, letri, römmum og tengingum. Meginhlutverkið er að takmarka kross-vefskriftun (XSS): jafnvel þótt árásaraðili sprauti merkjamáli inn á síðuna þína kemur góð stefna í veg fyrir að innsprautaða skriftan keyri. Hún stýrir líka hverjir mega ramma síðuna þína inn (frame-ancestors), hvert eyðublöð mega senda gögn (form-action) og hvert <base> má vísa (base-uri).

Sóknartilskipanir eins og img-src eða font-src falla aftur á default-src þegar þær vantar. base-uri, form-action og frame-ancestors falla ekki aftur á neitt, og þess vegna biður úttektin um þær sérstaklega.

Nonce, hass og strict-dynamic

Að leyfa hýsla (script-src https://cdn.example.com) virðist öruggt en er oft hægt að sniðganga: stór lén hýsa JSONP-endapunkta og gömul söfn sem árásaraðili getur endurnýtt. Aðferðin sem öryggisteymi vafra mæla með er ströng CSP: hver lögmæt <script> ber nonce sem netþjónninn býr til fyrir hvert svar, eða er leyfð með hassi sínu, og 'strict-dynamic' leyfir þessum traustu skriftum að hlaða þeim skriftum sem þær þurfa. Í þeirri uppsetningu eru https: og 'unsafe-inline' aðeins varaleiðir fyrir mjög gamla vafra; nútímavafrar hunsa þau.

Nonce virkar aðeins ef það breytist í hverju svari og er óútreiknanlegt. Það sem Bæta við nonce setur inn er dæmi: netþjónninn þinn eða rammaverkið verður að búa til sitt eigið. Hass nær yfir nákvæma bæti innfellda kóðans, svo ef skriftunni er breytt þarf nýtt hass.

Haus, Report-Only og meta tag

Sendu stefnuna sem HTTP-svarhaus þegar þú getur. Settu hana fyrst út sem Content-Security-Policy-Report-Only: vafrar tilkynna brot (í stjórnborðið, og á endapunktinn þinn ef þú stillir hann) án þess að loka á nokkuð, svo þú getur lagað síðurnar áður en stefnan er framfylgd. Skýrslustillingarnar bæta við report-uri fyrir eldri vafra og report-to ásamt Reporting-Endpoints haus.

<meta http-equiv> útgáfan er hentug á kyrrstæðri hýsingu, en vafrar hunsa frame-ancestors, report-uri, report-to og sandbox í henni, og það er ekkert Report-Only meta tag. Verkfærið fjarlægir þessar tilskipanir úr tagínu og segir frá því.

Allt gerist í vafranum þínum: stefnurnar sem þú límir inn eða býrð til eru ekki sendar á netþjón.

Algengar spurningar

Er 'unsafe-inline' í style-src vandamál?

Það er minna hættulegt en í script-src og mjög algengt, því mörg söfn setja innfellda stíla. Innsprautað CSS getur samt skemmt útlit síðu eða lekið gögnum, svo úttektin skráir það sem lága alvarleika.

Eru Google Analytics-hýslarnir tæmandi?

Þetta eru dæmi úr leiðbeiningum Google um CSP fyrir Google-merkið. Google aðlagar þá með tímanum og svæðisbundin lén gætu þurft að bætast við; athugaðu gildandi skjölun Google og fjarlægðu það sem þú notar ekki. Innfellda gtag.js-bútinn þarf einnig nonce eða hass.

Af hverju lokar stefnan mín á mínar eigin innfelldu skriftur?

Þegar script-src er stillt án 'unsafe-inline' er lokað á hverja innfellda <script> og hvert onclick= eigindi. Færðu kóðann í skrá, eða bættu við nonce eða hassi.

Kemur CSP í staðinn fyrir að hreinsa notendainnslátt?

Nei. CSP er önnur varnarlínan. Haltu áfram að umkóða úttak og staðfesta inntak; stefnan takmarkar tjónið þegar eitthvað kemst í gegn.

Get ég haft margar stefnur?

Já: ef síða fær marga CSP-hausa þarf hver auðlind að uppfylla þá alla. Límdu inn eina stefnu í einu í greininguna.