تاثیر
هدرهای امنیتی از دست رفته را می توان برای اجرای کلیک جک، اسکریپت بین سایتی (XSS) یا جمع آوری اطلاعات در مورد محیط سرور [S2] مورد سوء استفاده قرار داد. هنگامی که هدرهایی مانند Content-Security-Policy (CSP) یا X-Frame-Options به طور متناقض در مسیرها اعمال می شوند، مهاجمان می توانند مسیرهای محافظت نشده خاصی را برای دور زدن کنترل های امنیتی در سراسر سایت هدف قرار دهند.
علت اصلی
Next.js به توسعه دهندگان اجازه می دهد تا سرصفحه های پاسخ را در next.config.js با استفاده از ویژگی headers [S2] پیکربندی کنند. این پیکربندی از تطبیق مسیر استفاده می کند که از حروف عام و عبارات منظم [S2] پشتیبانی می کند. آسیبپذیریهای امنیتی معمولاً از موارد زیر ناشی میشوند:
- پوشش مسیر ناقص: الگوهای عجایب (به عنوان مثال،
/path*) ممکن است همه مسیرهای فرعی مورد نظر را پوشش ندهند و صفحات تودرتو بدون سرصفحه امنیتی [S2] باقی بماند. - افشای اطلاعات : به طور پیش فرض، Next.js ممکن است شامل سرصفحه
X-Powered-Byباشد، که نسخه چارچوب را نشان می دهد، مگر اینکه به طور صریح از طریق پیکربندیpoweredByHeaderZXCVETOKEN2ZXCVBETOKEN1ZXCV غیرفعال شود. - CORS پیکربندی نادرست: هدرهای
Access-Control-Allow-Originکه به درستی تعریف نشده اند در آرایهheadersمی توانند دسترسی غیرمجاز متقاطع به داده های حساس ZXCVEN2FIXXVIBET را مجاز کنند.
رفع بتنی
- الگوهای مسیر حسابرسی: اطمینان حاصل کنید که همه الگوهای
sourceدرnext.config.jsاز حروف عام مناسب (مانند/:path*) برای اعمال سرصفحه ها به صورت سراسری در موارد ضروری استفاده می کنند. - غیرفعال کردن اثرانگشت:
poweredByHeader: falseرا درnext.config.jsتنظیم کنید تا از ارسال هدرX-Powered-Byبه [S2] جلوگیری کنید. - محدود کردن CORS:
Access-Control-Allow-Originرا روی دامنه های مورد اعتماد خاص به جای حروف عام در پیکربندیheaders[S2] تنظیم کنید.
چگونه FixVibe آن را آزمایش می کند
FixVibe میتواند با خزیدن برنامه و مقایسه سرصفحههای امنیتی مسیرهای مختلف، یک کاوشگر دروازهدار فعال را انجام دهد. با تجزیه و تحلیل هدر X-Powered-By و سازگاری Content-Security-Policy در اعماق مسیرهای مختلف، FixVibe می تواند شکاف های پیکربندی را در next.config.js شناسایی کند.
