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.
Í <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
Þessar athuganir fundu enga veikleika.
Greina fyrirliggjandi stefnu
Hvernig á að búa til stefnu
- 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.
- Lagaðu Tilskipanir. Hver reitur tekur heimildir aðskildar með bili; auður reitur sleppir tilskipuninni.
- 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. - 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ð. - 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). - 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.
Tengd verkfæri
- .htaccess endurvísanir (301) Búðu til 301 og 302 endurvísanir fyrir .htaccess eða Nginx, þvingaðu HTTPS og www, fluttu lén og lagaðu skástrik, með athugun á lykkjum og keðjum.
- Meta-tagaframleiðandi Ókeypis framleiðandi meta-taga fyrir titil, meta-lýsingu, canonical-slóð, robots og viewport, með lengdarathugun og rétt umkóðuðu HTML.
- Tætigildaframleiðandi Búðu til MD5-, SHA-1-, SHA-256- og SHA-512-tætigildi texta eða skráa af hvaða stærð sem er og staðfestu skráarsummur. Allt keyrir í vafranum þínum.
- Robots.txt framleiðandi Búðu til gilda robots.txt skrá með user-agent hópum, Allow og Disallow reglum, sitemap-slóðum og crawl-delay, með athugun á algengum mistökum.