प्रभाव
एक आक्रमणकारीले कमजोर अनुप्रयोग [S2] को प्रयोगकर्ताहरूबाट संवेदनशील, प्रमाणीकृत डाटा चोर्न सक्छ। यदि प्रयोगकर्ताले कमजोर एपमा लग इन गर्दा खराब वेबसाइटमा जान्छ भने, खराब साइटले एपको API मा क्रस-ओरिजिन अनुरोधहरू गर्न सक्छ र प्रतिक्रियाहरू [S1][S2] पढ्न सक्छ। यसले प्रयोगकर्ता प्रोफाइलहरू, CSRF टोकनहरू, वा निजी सन्देशहरू [S2] सहित निजी जानकारीको चोरी हुन सक्छ।
मूल कारण
CORS एक HTTP-हेडरमा आधारित संयन्त्र हो जसले सर्भरहरूलाई [S1] स्रोतहरू लोड गर्न कुन उत्पत्ति (डोमेन, योजना, वा पोर्ट) लाई अनुमति दिइएको छ भनी निर्दिष्ट गर्न अनुमति दिन्छ। सर्भरको CORS नीति धेरै लचिलो वा कमजोर रूपमा [S2] लागू हुँदा कमजोरीहरू सामान्यतया उत्पन्न हुन्छन्:
- प्रतिबिम्बित उत्पत्ति हेडर: केही सर्भरहरूले ग्राहक अनुरोधबाट
Originहेडर पढ्छन् रAccess-Control-Allow-Origin(ACAO) प्रतिक्रिया हेडर [S2] मा फिर्ता प्रतिध्वनि गर्छन्। यसले प्रभावकारी रूपमा कुनै पनि वेबसाइटलाई स्रोत [S2] पहुँच गर्न अनुमति दिन्छ। - गलत कन्फिगर गरिएको वाइल्डकार्डहरू:
*वाइल्डकार्डले कुनै पनि स्रोतलाई कुनै पनि स्रोत पहुँच गर्न अनुमति दिँदा, यसलाई प्रमाणहरू (जस्तै कुकीहरू वा प्राधिकरण हेडरहरू) [S3] आवश्यक पर्ने अनुरोधहरूको लागि प्रयोग गर्न सकिँदैन। विकासकर्ताहरूले प्रायः [S2] अनुरोधको आधारमा गतिशील रूपमा ACAO हेडर उत्पन्न गरेर यसलाई बाइपास गर्ने प्रयास गर्छन्। - ह्वाइटलिस्टिङ 'नल': केही एप्लिकेसनहरूले
nullमूललाई ह्वाइटलिस्ट गर्छन्, जुन रिडिरेक्ट गरिएका अनुरोधहरू वा स्थानीय फाइलहरूद्वारा ट्रिगर गर्न सकिन्छ, जसले हानिकारक साइटहरूलाईnullमूलको रूपमा पहुँच प्राप्त गर्न अनुमति दिन्छ। [S2][S3]। - पर्सिङ त्रुटिहरू:
Originहेडर प्रमाणित गर्दा regex वा स्ट्रिङ मिल्दोजुल्दो त्रुटिहरूले आक्रमणकर्ताहरूलाईtrusted-domain.com.attacker.com[S2] जस्ता डोमेनहरू प्रयोग गर्न अनुमति दिन्छ।
यो नोट गर्न महत्त्वपूर्ण छ कि CORS क्रस-साइट अनुरोध जाली (CSRF) [S2] विरुद्ध सुरक्षा होइन।
कंक्रीट फिक्सहरू
- एक स्थिर श्वेतसूची प्रयोग गर्नुहोस्: अनुरोधको
Originहेडर [S2] बाट गतिशील रूपमाAccess-Control-Allow-Originहेडर उत्पन्न गर्नबाट बच्नुहोस्। यसको सट्टा, विश्वसनीय डोमेन [S3] को हार्डकोड गरिएको सूचीसँग अनुरोधको मूल तुलना गर्नुहोस्। - 'नल' उत्पत्तिलाई बेवास्ता गर्नुहोस्:
nullलाई अनुमति दिइएको मूल [S2] को श्वेतसूचीमा कहिल्यै समावेश नगर्नुहोस्। - सीमित प्रमाणहरू: निश्चित क्रस-ओरिजिन अन्तरक्रिया [S3] को लागि बिल्कुल आवश्यक भएमा मात्र
Access-Control-Allow-Credentials: trueसेट गर्नुहोस्। - उचित प्रमाणीकरण प्रयोग गर्नुहोस्: यदि तपाईंले धेरै उत्पत्तिहरूलाई समर्थन गर्नुपर्छ भने,
Originहेडरको लागि प्रमाणीकरण तर्क बलियो छ र उप-डोमेन वा समान देखिने डोमेनहरू [S2] द्वारा बाइपास गर्न सकिँदैन।
कसरी FixVibe यसको लागि परीक्षण गर्दछ
FixVibe ले अब यसलाई गेट गरिएको सक्रिय जाँचको रूपमा समावेश गर्दछ। डोमेन प्रमाणीकरण पछि, active.cors ले समान-मूलको API अनुरोधहरू सिंथेटिक आक्रमणकर्ता मूलको साथ पठाउँछ र CORS प्रतिक्रिया हेडरहरूको समीक्षा गर्दछ। यसले प्रतिबिम्बित स्वेच्छाचारी उत्पत्ति, वाइल्डकार्ड प्रमाणीकृत CORS, र वाइड-ओपन CORS गैर-सार्वजनिक API अन्त्यबिन्दुहरूमा सार्वजनिक सम्पत्तिको आवाजलाई बेवास्ता गर्दै रिपोर्ट गर्दछ।
