Content Security Policy (CSP)
CSP gyakorlati útmutató: hogyan szűkíti a böngészőben betölthető és futtatható erőforrásokat, és hogyan segít XSS ellen defense-in-depthként?
Röviden
A Content Security Policy válaszheaderben vagy bizonyos esetekben meta elemben megadott böngészőszabály. Meghatározhatja többek között, honnan jöhet script, kép, font vagy frame, és modern nonce/hash alapú stratégiával jelentősen csökkentheti nem kívánt script futás esélyét.
Mit jelent a content security policy (csp)?
A Content Security Policy válaszheaderben vagy bizonyos esetekben meta elemben megadott böngészőszabály. Meghatározhatja többek között, honnan jöhet script, kép, font vagy frame, és modern nonce/hash alapú stratégiával jelentősen csökkentheti nem kívánt script futás esélyét.
CSP engedélyezési réteg
01
HTML
02
script-src
03
style-src
04
img-src
05
connect-src
Hogyan működik a gyakorlatban?
A jó CSP-t nem érdemes egy lépésben túl szigorúra állítani. Először inventoryzd a szükséges erőforrásokat, használj report-only megfigyelést, majd fokozatosan szűkíts. Inline script-heavy alkalmazásnál nonce vagy hash alapú megoldás jobb, mint a korlátlan unsafe-inline.
- script-src a JavaScript-forrásokat kontrollálja.
- object-src 'none' és base-uri szűkítés sok policyben jó alap.
- frame-ancestors szabályozhatja, ki ágyazhatja be az oldalt.
- Report-Only segít törés nélkül felmérni a szükséges engedélyeket.
Gyakorlati fejlesztői szemlélet
A CSP-t verziózott konfigurációként kezeld és éles third-party változtatások után teszteld. Egy új analytics vagy chat widget könnyen megváltoztathatja a szükséges forráslistát.
Gyakori hibák és félreértések
- Csak default-src * beállítani és CSP-nek nevezni.
- XSS output encoding helyett CSP-re hagyatkozni.
- A policy-t úgy lazítani, hogy minden konzolhiba eltűnjön, anélkül hogy értenéd az okát.
Források és szabványok
A technikai részletekhez elsődleges szabványokat és karbantartott hivatalos dokumentációt használok. Frameworkök, böngészők és webes API-k idővel változhatnak, ezért implementálás előtt mindig ellenőrizd az aktuális dokumentációt is.
Kapcsolódó ByBence Academy