EMZETT.
Giriş yap

Content Security Policy (CSP)

Kısaca: Bir web sitesinin tarayıcıya betiklerin, görsellerin, stillerin ve diğer içeriğin tam olarak nereden yüklenebileceğini söylediği HTTP başlığı — tarayıcı geri kalan her şeyi engeller.

Biraz daha ayrıntılı: Politika script-src (izin verilen betik kaynakları), img-src, connect-src (fetch ile izin verilen bağlantılar) ve frame-ancestors (sayfayı kimin gömebileceği) gibi kurallardan (“directive”) oluşur. XSS’e karşı ikinci savunma hattı olarak çalışır: saldırgan HTML enjekte edebilse bile, politika yasaklıyorsa tarayıcı yabancı betikleri çalıştırmaz.

Bizim bağlamımız: Emzett, next.config.ts içinde HSTS, X-Frame-Options: DENY ve nosniff ile birlikte bir CSP ayarlar. Wiki’nin CDN kaynağı olmayan kendi CSP’si vardır — tüm betikler kendi alan adımızdadır. Dürüst olmak gerekirse politikamız Next.js satır içi betikler ürettiği için betikler için hâlâ 'unsafe-inline'e izin verir; nonce’lu daha sıkı varyant iyileştirme listesindedir.

Ayrıntılı

Tipik direktifler

  • default-src 'self': temel kural, yalnızca kendi alan adı.
  • script-src: izin verilen betikler; 'unsafe-inline' ve 'unsafe-eval' korumayı büyük ölçüde zayıflatır.

Ayrıca bak: XSS, Güvenlik duvarı, Güvenlik