GraphQL Introspection פתוח באפליקציית Bolt
Bolt מייצר פרויקטים מלאים (לרוב React/Next עם Supabase) ופריסה נפוצה היא Netlify.
מה הבעיה
נקודת קצה GraphQL שמאפשרת introspection בפרודקשן - כל אחד יכול לבקש את הסכמה המלאה: כל הטיפוסים, השדות והמוטציות.
למה זה מסוכן
התוקף מקבל מפה מדויקת של ה-API שלך, כולל שדות ומוטציות שלא חשבת שמישהו ימצא - נקודת הפתיחה של כל מתקפה ממוקדת.
איפה זה מתוקן ב-Bolt
משתני סביבה מגדירים ב-Netlify (Site settings > Environment variables) וקוראים אותם רק בצד השרת - קידומת VITE_/NEXT_PUBLIC_ הופכת ערך לציבורי.
שלבי התיקון
- כבה introspection בפרודקשן (רוב השרתים:
introspection: false) - הוסף בדיקת הרשאות על מוטציות רגישות - הסתרת הסכמה היא לא הגנה בפני עצמה
ההנחיה להדביק ב-Bolt
העתק את ההנחיה הבאה לכלי שבנה את האפליקציה (באנגלית - כך הכלים עובדים הכי טוב):
Disable GraphQL introspection in production and verify every sensitive mutation checks authorization server-side.
איך מוודאים שהתיקון עבד
סריקה חוזרת שולחת שאילתת introspection ומוודאת שהיא נדחית.
עוד בנושא
בדיקה חינם
רוצה לדעת אם האפליקציה שלך חשופה? סרוק בחינם ב-30 שניות וקבל ציון אבטחה + הוראות תיקון.