FixVibe
Covered by FixVibemedium

Next.js پیکربندی نادرست هدر امنیتی در next.config.js

برنامه‌های Next.js که از next.config.js برای مدیریت سرصفحه استفاده می‌کنند، در صورت نادقیق بودن الگوهای تطبیق مسیر، مستعد شکاف‌های امنیتی هستند. این تحقیق به بررسی این موضوع می‌پردازد که چگونه پیکربندی‌های نادرست wildcard و regex منجر به از دست رفتن هدرهای امنیتی در مسیرهای حساس می‌شود و چگونه پیکربندی را سخت‌تر می‌کند.

CWE-1021CWE-200

تاثیر

هدرهای امنیتی از دست رفته را می توان برای اجرای کلیک جک، اسکریپت بین سایتی (XSS) یا جمع آوری اطلاعات در مورد محیط سرور [S2] مورد سوء استفاده قرار داد. هنگامی که هدرهایی مانند Content-Security-Policy (CSP) یا X-Frame-Options به طور متناقض در مسیرها اعمال می شوند، مهاجمان می توانند مسیرهای محافظت نشده خاصی را برای دور زدن کنترل های امنیتی در سراسر سایت هدف قرار دهند.

علت اصلی

Next.js به توسعه دهندگان اجازه می دهد تا سرصفحه های پاسخ را در next.config.js با استفاده از ویژگی headers [S2] پیکربندی کنند. این پیکربندی از تطبیق مسیر استفاده می کند که از حروف عام و عبارات منظم [S2] پشتیبانی می کند. آسیب‌پذیری‌های امنیتی معمولاً از موارد زیر ناشی می‌شوند:

  • پوشش مسیر ناقص: الگوهای عجایب (به عنوان مثال، /path*) ممکن است همه مسیرهای فرعی مورد نظر را پوشش ندهند و صفحات تودرتو بدون سرصفحه امنیتی [S2] باقی بماند.
  • افشای اطلاعات : به طور پیش فرض، Next.js ممکن است شامل سرصفحه X-Powered-By باشد، که نسخه چارچوب را نشان می دهد، مگر اینکه به طور صریح از طریق پیکربندی poweredByHeader ZXCVETOKEN2ZXCVBETOKEN1ZXCV غیرفعال شود.
  • 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 شناسایی کند.