Content-Security-Policy (CSP): XSS dan himoyalanish
CSP header'i nima, uni qanday sozlash, 'unsafe-inline' dan qanday qutulish va Report-Only rejimida xavfsiz sinash.
CSP nima
Content-Security-Policy brauzerga sahifa qaysi manbalardan skript, stil, rasm va ramkalarni yuklashi mumkinligini aytadi. Hujumchi sahifaga zararli skript kiritishga (XSS) muvaffaq bo'lsa ham, CSP uni bajarilishidan to'sishi mumkin.
Boshlang'ich siyosat
HTTP
Content-Security-Policy: default-src 'self'; img-src 'self' data:; object-src 'none'; base-uri 'self'; frame-ancestors 'self'- default-src 'self' — hammasi faqat o'z domeningizdan.
- object-src 'none' — Flash/plagin orqali kod yuklashni taqiqlaydi.
- base-uri 'self' — <base> tegi orqali manzillarni almashtirib bo'lmaydi.
- frame-ancestors 'self' — saytni boshqa sayt ramkasiga joylab bo'lmaydi (clickjacking).
Eng ko'p uchraydigan xatolar
- 'unsafe-inline' — inline skriptlarga ruxsat beradi va CSP ning asosiy maqsadini yo'qqa chiqaradi. O'rniga nonce yoki hash ishlating.
- 'unsafe-eval' va * (yulduzcha) — deyarli himoya bermaydi.
- https: yoki data: ni script-src da ruxsat etish — istalgan HTTPS saytdan skript yuklash mumkin degani.
Xavfsiz joriy etish
Avval Content-Security-Policy-Report-Only header'i bilan sinab, brauzer konsolidagi buzilishlarni ko'ring va kerakli manbalarni qo'shing. Hammasi to'g'ri ishlagach, header nomini Content-Security-Policy ga o'zgartiring.
SecScan chuqur tekshiruvda CSP ni tahlil qilib, zaif joylarni (unsafe-inline, wildcard, umumiy CDN hostlar) ro'yxat qiladi.