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 अफवाहलाई सेवा बगमा बदल्छ।