Hacker News

CSP بۆ پەنتێستەرەکان: تێگەیشتن لە بنەماکان

کۆمێنتەکان

2 min read Via www.kayssel.com

Mewayz Team

Editorial Team

Hacker News

بۆچی هەموو پێنتێستەرێک پێویستە شارەزا بێت لە سیاسەتی ئاسایشی ناوەڕۆک

سیاسەتی ئاسایشی ناوەڕۆک (CSP) بووەتە یەکێک لە گرنگترین میکانیزمەکانی بەرگری لایەنی وێبگەڕ لە دژی سکریپتی cross-site (XSS)، دەرزی لێدانی زانیاری و هێرشی کلیکجاکینگ. بەڵام لە بەشدارییەکانی تاقیکردنەوەی دزەکردندا، سەردێڕی CSP وەک یەکێک لە زۆرترین جار بە هەڵە ڕێکخراو دەمێنێتەوە - و بە هەڵە تێگەیشتوون - کۆنتڕۆڵە ئەمنییەکان. توێژینەوەیەکی ساڵی ٢٠٢٤ کە زیاتر لە یەک ملیۆن ماڵپەڕی شیکردەوە دەریخست کە تەنها ١٢.٨% سەردێڕی CSP یان بەهیچ شێوەیەک بڵاوکردۆتەوە و لەو ژمارەیەش نزیکەی ٩٤% لانیکەم یەک لاوازی سیاسەتیان تێدایە کە دەتوانرێت ئیستغلال بکرێت. بۆ پەنتێستەرەکان، تێگەیشتن لە CSP ئیختیاری نییە — ئەوە جیاوازی نێوان هەڵسەنگاندنی ئاستی ڕووکار و ڕاپۆرتێکە کە لە ڕاستیدا هەڵوێستی ئاسایشی کڕیار بەهێز دەکات.

ئایا تۆ هەڵسەنگاندنی بەرنامەی وێب ئەنجام بدەیت، ڕاوکردنی خەڵاتی هەڵە، یان دروستکردنی ئاسایش بۆ ناو پلاتفۆرمی بازرگانی کە مامەڵە لەگەڵ داتا هەستیارەکانی کڕیار دەکات، زانیاری CSP بنەڕەتییە. ئەم ڕێنماییە باس لەوە دەکات کە CSP چییە، چۆن لە ژێر کابۆکەدا کاردەکات، لە کوێدا شکست دەهێنێت، و چۆن پێنتێستەرەکان دەتوانن بە شێوەیەکی سیستماتیکی سیاسەتە لاوازەکان هەڵسەنگێنن و بەدەریان لێبکەن.

سیاسەتی ئاسایشی ناوەڕۆک لە ڕاستیدا چی دەکات

لە ناوەڕۆکی خۆیدا، CSP میکانیزمێکی ئاسایشی ڕاگەیاندنە کە لە ڕێگەی سەردێڕی وەڵامی HTTP (یان کەمتر باو، تاگی ) دەگەیەنرێت. وێبگەڕەکە ڕێنمایی دەکات کە کام سەرچاوەی ناوەڕۆک - سکریپت، ستایل، وێنە، فۆنت، چوارچێوە و زۆر شتی تر - ڕێگەپێدراوە بۆ بارکردن و جێبەجێکردن لە لاپەڕەیەکی دیاریکراودا. کاتێک سەرچاوەیەک سیاسەتەکە پێشێل دەکات، وێبگەڕەکە بلۆک دەکات و بە ئیختیاری پێشێلکارییەکە ڕاپۆرت دەکات بۆ خاڵی کۆتایی دیاریکراو.

پاڵنەری سەرەتایی پشت CSP کەمکردنەوەی هێرشەکانی XSS بوو. بەرگرییە تەقلیدییەکانی XSS وەکو پاککردنەوەی هاتنەژوورەوە و کۆدکردنی دەرچوون کاریگەرن بەڵام شکاون — یەک کۆنتێکستی لەدەستچوو یان هەڵەی کۆدکردن دەتوانێت لاوازییەکە بناسێنێتەوە. CSP چینێکی بەرگری قووڵ زیاد دەکات: تەنانەت ئەگەر هێرشبەرێک تاگێکی سکریپتی زیانبەخش بخاتە ناو DOM، سیاسەتێکی ڕێکخراو بە باشی ڕێگری دەکات لە جێبەجێکردنی وێبگەڕ.

CSP لەسەر مۆدێلی لیستی سپی کاردەکات. لەبری ئەوەی هەوڵی بلۆککردنی ناوەڕۆکی ناسراو-خراپ بدات، پێناسەی ئەوە دەکات کە بە ڕوونی چی ڕێگەپێدراوە. هەموو شتێکی تر بە شێوازی پێشوەختە ڕەتدەکرێتەوە. ئەم پێچەوانەکردنەوەی مۆدێلی ئاسایش لە ڕووی تیۆریەوە بەهێزە، بەڵام لە پراکتیکدا، پاراستنی سیاسەتی توند لە سەرانسەری بەرنامە ئاڵۆزەکانی وێبدا - بە تایبەت پلاتفۆرمەکان کە دەیان مۆدیۆلی یەکگرتوو وەک CRM، فاکتورەکردن، شیکاری و سیستەمی حجزکردن بەڕێوەدەبەن - بەناوبانگە بە قورس.

ئەناتۆمی سەردێڕی CSP: ڕێنمایی و سەرچاوەکان

سەردێڕی CSP لە ڕێنماییەکان پێکهاتووە، هەریەکەیان جۆرێکی سەرچاوەی دیاریکراو کۆنتڕۆڵ دەکەن. تێگەیشتن لەم ڕێنماییانە زۆر گرنگە بۆ هەر پەنتێستەرێک کە سیاسەتی ئامانجێک هەڵدەسەنگێنێت. گرنگترین ڕێنماییەکان بریتین لە default-src (پاشکەوتنی هەر ڕێنمایییەک کە بە ڕوونی دانەنراوە)، script-src (جێبەجێکردنی جاڤاسکڕێپت)، style-src (CSS)، img-src (وێنەکان)، connect-src (پەیوەندییەکانی XHR، Fetch، WebSocket)، frame-src (iframes جێگیرکراوەکان)، و object-src (پلاگینەکانی وەک ئەپڵێتەکانی فلاش یان جاڤا).

هەر ڕێنماییەک یەک یان چەند دەربڕینەکانی سەرچاوە وەرئەگرێت کە سەرچاوە ڕێگەپێدراوەکان پێناسە دەکەن. ئەمانە لە ناوی هۆستی تایبەتەوە دەست پێدەکات (https://cdn.example.com) تا وشەی سەرەکی فراوانتر:

  • 'خۆم' — ڕێگە بە سەرچاوەکان دەدات لە هەمان سەرچاوەی بەڵگەنامەکە
  • 'هیچ' — هەموو سەرچاوەکانی ئەو جۆرە بلۆک دەکات
  • 'unsafe-inline' — ڕێگە بە سکریپت یان ستایلەکانی ناو هێڵ دەدات (بە شێوەیەکی کاریگەر پاراستنی XSS بێلایەن دەکات)
  • 'unsafe-eval' — ڕێگە بە eval()، setTimeout(string)، و جێبەجێکردنی کۆدی داینامیکی هاوشێوە دەدات
  • 'nonce-{random}' — ڕێگە بە سکریپتە تایبەتەکانی ناو هێڵ دەدات کە بە nonce
  • ی کریپتۆگرافی هاوتا تاگ کراون
  • 'strict-dynamic' — متمانە بەو سکریپتانە دەکات کە لەلایەن سکریپتە پێشتر متمانەپێکراوەکانەوە بارکراون، بە پشتگوێخستنی لیستە ڕێگەپێدراوەکانی بنەمای هۆست
  • داتا: — ڕێگە بە URIی داتا دەدات وەک سەرچاوەی ناوەڕۆک

سەردێڕی CSP جیهانی ڕاستەقینە لەوانەیە بەم شێوەیە دەرکەوێت: Content-Security-Policy: default-src 'self'; script-src 'خۆم' https://cdn.jsdelivr.net 'جارێک-abc123'؛ style-src 'خۆم' 'ناسەلامەت-لە ناو هێڵ'؛ img-src *؛ object-src 'هیچ'. وەک پەنتێستەرێک کاری تۆ ئەوەیە کە ئەم سیاسەتە بخوێنیتەوە و یەکسەر دەستنیشان بکەیت کە لە کوێ بەهێزە و لە کوێ لاوازە و لە کوێدا دەتوانرێت ئیستغلال بکرێت.

ڕێکخستنە هەڵەکانی باوی CSP پێنتێستەرەکان دەبێ ئامانجیان بکات

کەلێنی نێوان بڵاوکردنەوەی سەردێڕی CSP و بڵاوکردنەوەی سەردێڕی CSP کاریگەر زۆر گەورەیە. لە پراکتیکدا، زۆربەی سیاسەتەکان لاوازییەکان لەخۆدەگرن کە بەهۆی ئاسانکاری گەشەپێدەر، یەکخستنی لایەنی سێیەم، یان تێنەگەیشتنێکی سادە ناسێنراون. لە کاتی هەڵسەنگاندنەکاندا، پێنتێستەرەکان پێویستە بە شێوەیەکی سیستماتیکی پشکنین بۆ ئەم شکستە باوانە بکەن.

وێرانکەرترین هەڵە ڕێکخستن بوونی 'unsafe-inline' لە ڕێنمایی script-src دایە. ئەم تاکە وشە سەرەکییە تەواوی سوودی دژە XSS ی CSP لە بنەڕەتدا بێسوود دەکات، چونکە ڕێگە بە وێبگەڕ دەدات هەر تاگێکی ناو هێڵ