הגדרת CORS פרוצה באפליקציית v0
v0 של Vercel מייצר קומפוננטות ואפליקציות Next.js שנפרסות ל-Vercel.
מה הבעיה
API שמחזיר Access-Control-Allow-Origin: * (או משקף כל Origin) יחד עם credentials - כך שכל אתר זר יכול לקרוא לו בשם המשתמש.
למה זה מסוכן
אתר זדוני שהמשתמש שלך גולש בו יכול לשלוח בקשות ל-API שלך עם ה-cookies שלו ולקרוא את התשובות - גניבת נתונים בלי לפרוץ כלום.
איפה זה מתוקן ב-v0
משתני סביבה מוגדרים ב-Vercel (Project Settings > Environment Variables). כל משתנה עם קידומת NEXT_PUBLIC_ נשלח לדפדפן - סודות בלי הקידומת הזו בלבד.
שלבי התיקון
- הגדר רשימת Origins מפורשת במקום
* - אל תשלב
Allow-Credentials: trueעם Origin משוקף
ההנחיה להדביק ב-v0
העתק את ההנחיה הבאה לכלי שבנה את האפליקציה (באנגלית - כך הכלים עובדים הכי טוב):
Replace wildcard CORS with an explicit origin allowlist and never combine Access-Control-Allow-Credentials with a reflected origin.
איך מוודאים שהתיקון עבד
סריקה חוזרת שולחת בקשה עם Origin זר ובודקת מה השרת מאשר.
עוד בנושא
בדיקה חינם
רוצה לדעת אם האפליקציה שלך חשופה? סרוק בחינם ב-30 שניות וקבל ציון אבטחה + הוראות תיקון.