GraphQL Introspection פתוח באפליקציית v0
v0 של Vercel מייצר קומפוננטות ואפליקציות Next.js שנפרסות ל-Vercel.
מה הבעיה
נקודת קצה GraphQL שמאפשרת introspection בפרודקשן - כל אחד יכול לבקש את הסכמה המלאה: כל הטיפוסים, השדות והמוטציות.
למה זה מסוכן
התוקף מקבל מפה מדויקת של ה-API שלך, כולל שדות ומוטציות שלא חשבת שמישהו ימצא - נקודת הפתיחה של כל מתקפה ממוקדת.
איפה זה מתוקן ב-v0
משתני סביבה מוגדרים ב-Vercel (Project Settings > Environment Variables). כל משתנה עם קידומת NEXT_PUBLIC_ נשלח לדפדפן - סודות בלי הקידומת הזו בלבד.
שלבי התיקון
- כבה introspection בפרודקשן (רוב השרתים:
introspection: false) - הוסף בדיקת הרשאות על מוטציות רגישות - הסתרת הסכמה היא לא הגנה בפני עצמה
ההנחיה להדביק ב-v0
העתק את ההנחיה הבאה לכלי שבנה את האפליקציה (באנגלית - כך הכלים עובדים הכי טוב):
Disable GraphQL introspection in production and verify every sensitive mutation checks authorization server-side.
איך מוודאים שהתיקון עבד
סריקה חוזרת שולחת שאילתת introspection ומוודאת שהיא נדחית.
עוד בנושא
בדיקה חינם
רוצה לדעת אם האפליקציה שלך חשופה? סרוק בחינם ב-30 שניות וקבל ציון אבטחה + הוראות תיקון.