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