VPN לא יכול להשבית CORS, הוא משנה את התגובה
כתובת יציאה חדשה אינה הופכת שני מקורות לאותו דבר. תעדו את כותרות התגובה בשני הנתיבים והשוו אותן לפני שתאשימו את אכיפת CORS.
התחילו בהפרדה בין שני דברים שהשתנו בבת אחת: נתיב הרשת והאכיפה של הדפדפן. VPN משנה את כתובת היציאה; הוא אינו משנה את מקור העמוד, שנבנה מסכימה, מארח ופורט. אם הבקשה מצליחה כעת, משהו בתגובה השתנה, או שהבקשה עצמה השתנתה. לברר מה מהם זו כל החקירה.
CORS הוא פרוטוקול כותרות שהדפדפן אוכף, ולכן שום דבר בנתיב הרשת אינו יכול להשבית אותו.
מקור אינו כתובת IP
מקור הוא סכימה, מארח ופורט. הוא אינו הכתובת שממנה יוצאות החבילות, ואינו כתובת ה-IP שהשרת רואה. לכן VPN יכול לשנות כל כתובת נראית ולהשאיר את המקור זהה. הדפדפן משווה את Access-Control-Allow-Origin של התגובה למקור העמוד, וכתובת היציאה לעולם אינה נכנסת להשוואה הזו.
לכן תוסף או פרוקסי שנראה כאילו הוא מתקן שגיאת CORS עושה משהו אחר: הוא כותב מחדש כותרות, או מנתב את הבקשה כך שהיא אינה עוד חוצת מקורות. אף אחד מהשניים אינו תכונה של ה-VPN.
מה הדפדפן באמת שולח
בבקשה חוצת מקורות שאינה פשוטה, הדפדפן שולח תחילה בדיקה מקדימה OPTIONS, הנושאת את השיטה והכותרות המיועדות. השרת חייב להשיב בהרשאות שהוא מתיר, והבקשה האמיתית נמשכת רק אם התשובה הזו עומדת בכללים. VPN משנה את הנתיב שנושא את שני חילופי המידע ויכול לשנות מה משיבות השירותים המתווכים. הוא אינו משנה את מחרוזת המקור או את דרישת הבדיקה המקדימה.
לקוח שורת פקודה בדרך כלל אינו מציג דבר מזה. ייתכן שאינו שולח כותרת Origin, לעתים קרובות מדלג על הבדיקה המקדימה, וייתכן שהוא נושא אישורים שונים. גוף שמוחזר ל-curl מוכיח שהשרת השיב ל-curl.
מצאו את התגובה שהשתנתה
השוו את התגובה בפועל בכל נתיב, לא רק את קוד המצב. הסתכלו על הכותרות הנושאות הרשאות CORS, על סוג התוכן, על כל הפניה מחדש, ועל האם גרסה של WAF או CDN יצרה עמוד אחר. סירוב אזורי, הפניה מחדש לאימות או עמוד שגיאה בלי כותרת ההרשאה נכשלים בדפדפן בעודם נראים כמו באג CORS. אלה הבדלים בנתיב האספקה, ואותם יש לתעד.
תעדו את כותרות התגובה משני הנתיבים והשוו אותן שורה אחר שורה. אם ההבדל היחיד הוא היעדר Access-Control-Allow-Origin בעמוד שגיאה אחד, מצאתם את הסיבה.
תקנו את השירות, לא את האכיפה
כשהשירות שלכם, הצהירו במפורש על המקורות המותרים ועל תכונות הבקשה, ואחר כך קראו את השגיאות שהחזית והמתווכים שלו מייצרים. אם לא, שלחו לבעל השירות השוואה מחוטאת. לעולם אל תכללו בקובץ הדוח הזה עוגיות, כותרות הרשאה או ייצוא הפעלות, משום שאלה האישורים שהמדיניות קיימת כדי להגן עליהם.
הימנעו מתוספי דפדפן שמשביתים CORS. הם משנים את גבול האבטחה תוך הסתרת הפרש התגובה שהיה צריך להסביר, ומשאירים את אותה כשלון במקום עבור כל משתמש אחר.
תעדו את שתי התגובות, את המקור שנעשה בו שימוש ואת הנתיב שנבחר. התיעוד הזה הופך שמועה על VPN לבאג בשירות.