Нөлөөлөл
Халдагчид [S2] эмзэг програмын хэрэглэгчдийн эмзэг, баталгаажуулсан өгөгдлийг хулгайлж болно. Хэрэв хэрэглэгч эмзэг апп-д нэвтэрсэн үедээ хортой вэб сайтад зочилсон бол хортой сайт нь уг програмын API-д хөндлөн гарал үүслийн хүсэлт гаргаж, [S1][S2] хариултуудыг унших боломжтой. Энэ нь хэрэглэгчийн профайл, CSRF жетон эсвэл [S2] хувийн мессеж зэрэг хувийн мэдээллийг хулгайлахад хүргэж болзошгүй.
Үндсэн шалтгаан
CORS нь HTTP-толгойд суурилсан механизм бөгөөд серверүүдэд [S1] эх үүсвэрийг ачаалахыг зөвшөөрсөн эх үүсвэрийг (домэйн, схем эсвэл порт) зааж өгөх боломжийг олгодог. Серверийн CORS бодлого хэт уян хатан эсвэл муу хэрэгжсэн [S2] үед ихэвчлэн эмзэг байдал үүсдэг:
- Туссан гарал үүслийн толгой: Зарим серверүүд үйлчлүүлэгчийн хүсэлтээс
Originгарчгийг уншиж,Access-Control-Allow-Origin(ACAO) [S2] хариултын толгой хэсэгт дахин цуурайтаж байна. Энэ нь аливаа вэбсайтад [S2] эх сурвалжид хандах боломжийг үр дүнтэй болгодог. - Тохиргоог буруу хийсэн тэмдэгтүүд:
*орлуулагч тэмдэг нь ямар ч эх сурвалжаас эх сурвалжид хандахыг зөвшөөрдөг ч [S3] итгэмжлэл (күүки эсвэл Зөвшөөрлийн толгой гэх мэт) шаардлагатай хүсэлтэд ашиглах боломжгүй. Хөгжүүлэгчид [S2] хүсэлт дээр үндэслэн ACAO толгойг динамикаар үүсгэх замаар үүнийг даван туулахыг оролддог. - Цагаан жагсаалтад 'null': Зарим аппликейшн нь
nullэх сурвалжийг цагаан жагсаалтад оруулсан бөгөөд энэ нь дахин чиглүүлсэн хүсэлтүүд эсвэл локал файлуудаар өдөөгдөж, хортой сайтуудадnullгарал үүслийг харуулах боломжийг олгодог. [S2][S3]. - Шинжилгээний алдаа:
Originтолгой хэсгийг баталгаажуулах үед regex эсвэл стринг тааруулахад гарсан алдаа нь халдагчдадtrusted-domain.com.attacker.com[S2] зэрэг домэйн ашиглах боломжийг олгоно.
CORS нь сайт дамнасан хүсэлтийг хуурамчаар үйлдэх (CSRF) [S2]-ээс хамгаалах хамгаалалт биш гэдгийг анхаарах нь чухал.
Бетон засвар
- Хөдөлгөөнгүй цагаан жагсаалтыг ашиглах: Хүсэлтийн
Originтолгой хэсгээсAccess-Control-Allow-Originтолгой хэсгийг [S2] динамикаар үүсгэхээс зайлсхий. Үүний оронд хүсэлтийн гарал үүслийг [S3] итгэмжлэгдсэн домайнуудын хатуу кодтой жагсаалттай харьцуулна уу. - "Үгүй" гарал үүсэлээс зайлсхий:
null-г зөвшөөрөгдсөн гарал үүслийн жагсаалтад хэзээ ч бүү оруул. - Итгэмжлэх жуух бичгийг хязгаарлах: [S3] хоорондын харилцан үйлчлэлд зайлшгүй шаардлагатай тохиолдолд л
Access-Control-Allow-Credentials: true-г тохируулна уу. - Зохистой Баталгаажуулалтыг ашиглах: Хэрэв та олон эх сурвалжийг дэмжих шаардлагатай бол
Originтолгой хэсгийн баталгаажуулалтын логик найдвартай бөгөөд дэд домайн эсвэл ижил төстэй харагдах [S2] домайнуудыг тойрч гарах боломжгүй эсэхийг шалгаарай.
FixVibe үүнийг хэрхэн туршиж үздэг
FixVibe одоо үүнийг хаалттай идэвхтэй шалгалт болгон оруулсан. Домэйн баталгаажуулсны дараа active.cors нь ижил гаралтай API хүсэлтийг синтетик халдагчийн гарал үүсэлтэй илгээж, CORS хариултын толгой хэсгийг хянадаг. Энэ нь дурын гарал үүсэлтэй, орлуулагч тэмдэгтээр баталгаажсан CORS, олон нийтэд нээлттэй бус API төгсгөлийн цэгүүд дээр өргөн нээлттэй CORS-ийг тусгаж, нийтийн өмчийн чимээ шуугианаас зайлсхийсэн.
