SecScan

Content-Security-Policy (CSP): ҳифз аз XSS

Сарлавҳаи CSP чист, онро чӣ тавр танзим кардан, чӣ тавр аз 'unsafe-inline' халос шудан ва дар реҷаи Report-Only бехатар озмудан.

CSP чист

Content-Security-Policy ба браузер мегӯяд, ки саҳифа аз кадом манбаъҳо скрипт, услуб, тасвир ва фреймҳо бор карда метавонад. Ҳатто агар ҳамлагар скрипти зарароварро ворид карда тавонад (XSS), CSP метавонад аз иҷрои он монеъ шавад.

Сиёсати ибтидоӣ

HTTP
Content-Security-Policy: default-src 'self'; img-src 'self' data:; object-src 'none'; base-uri 'self'; frame-ancestors 'self'
  • default-src 'self' — ҳама танҳо аз домени худатон.
  • object-src 'none' — боркунии кодро тавассути плагин манъ мекунад.
  • base-uri 'self' — суроғаҳоро тавассути теги <base> иваз кардан мумкин нест.
  • frame-ancestors 'self' — сайтро ба фреми сайти бегона ҷойгир кардан мумкин нест (clickjacking).

Хатогиҳои маъмултарин

  • 'unsafe-inline' скриптҳои inline-ро иҷозат медиҳад ва мақсади асосии CSP-ро барбод медиҳад. Ба ҷои он nonce ё hash истифода баред.
  • 'unsafe-eval' ва * (ситорача) — қариб ҳифз намедиҳанд.
  • Иҷозати https: ё data: дар script-src — маънояш аз ҳар сайти HTTPS скрипт бор кардан мумкин аст.

Ҷорӣ кардани бехатар

Аввал сиёсатро бо сарлавҳаи Content-Security-Policy-Report-Only санҷед: вайронкуниҳоро дар консоли браузер бинед ва манбаъҳои лозимиро илова кунед. Вақте ҳама дуруст кор кард, номи сарлавҳаро ба Content-Security-Policy иваз кунед.

SecScan дар тафтиши чуқур CSP-ро таҳлил карда, нуқтаҳои сустро (unsafe-inline, wildcard, хостҳои умумии CDN) рӯйхат мекунад.

Дастурҳои дигар