
Paketa astro-strict-csp, e publikuar në npm, synon të zbatojë në Astro një politikë strikte të sigurisë së përmbajtjes (CSP), të bazuar në hash, si dhe Subresource Integrity (SRI). Sipas autorit, integrimi nuk ka varësi të jashtme dhe ruan funksionimin e veçorive të integruara të Astro.
Problemi lidhet me përdorimin e gjerë të kodit inline nga Astro. Shiki vendos atribute stili në blloqet e kodit, komponentët i përdorin për përmasat dhe paraqitjen, ndërsa kalimi mes temave kërkon skripte sinkrone për të kontrolluar localStorage përpara shfaqjes së parë. Një CSP me style-src 'self' dhe script-src 'self' i bllokon këto elemente; lejimi i 'unsafe-inline' dobëson mbrojtjen ndaj XSS.
Zgjidhja ndërhyn në fazën astro:build:done: nxjerr stilet dhe skriptet inline në skedarë të jashtëm të identifikuar me hash, përditëson referencat në HTML dhe llogarit hash-et SHA-384 për SRI. Gjithashtu gjeneron politikat HTML dhe skedarët _headers për Cloudflare dhe Netlify, duke automatizuar punën që përndryshe do të kërkonte konfigurim manual.
Autori e zhvilloi fillimisht këtë proces për një faqe të bazuar në Hono dhe më pas e paketoi për të shmangur përsëritjen e skripteve në projekte Astro. Paketa zë 63 kB dhe përdor vetëm API-të vendase node:crypto, node:fs, node:path dhe node:url, pa përfshirë parserë si jsdom apo cheerio.
Burimi: DEV Community (Web Dev Feed) — lexoni artikullin e plotë në anglisht.

