Banyak Pengembang Belum Memahami CORS
Judul asli: Developers don't understand CORS (2019)
Mengapa Ini Penting
Pemahaman CORS yang buruk dapat menyebabkan kerentanan keamanan serius pada aplikasi web dan integrasi desktop-browser.
Artikel dari 2019 mengungkap bahwa banyak pengembang web tidak memahami Cross-Origin Resource Sharing (CORS), yang dibuktikan dengan kerentanan Zoom yang menggunakan hack gambar untuk melewati CORS daripada implementasi yang aman.
Chris Foster, konsultan full stack, menyoroti masalah umum di kalangan pengembang web: kurangnya pemahaman tentang cara kerja CORS. Kerentanan Zoom menjadi contoh nyata dari masalah ini. Peneliti keamanan Jonathan Leitschuh menemukan bahwa Zoom menjalankan server web di localhost:19421 untuk mengintegrasikan browser dengan aplikasi native Zoom.
Daripada menggunakan permintaan AJAX biasa dengan header Access-Control-Allow-Origin yang tepat, Zoom memilih menggunakan "hack gambar" - memuat gambar dari server lokal di mana dimensi gambar menentukan kode status server. Pendekatan ini bertujuan melewati kebijakan CORS, padahal solusi yang benar adalah mengimplementasikan REST API dengan header Access-Control-Allow-Origin yang disetel ke https://zoom.us. Hal ini memastikan hanya JavaScript yang berjalan pada domain zoom.us yang dapat berkomunikasi dengan server lokal.
Kerentanan ini memungkinkan tidak hanya website Zoom tetapi juga setiap website lain di internet untuk memicu operasi pada klien native dan mengakses respons. Foster menekankan bahwa menjalankan server web di localhost yang memberikan akses istimewa kepada setiap website di internet sangat berisiko. CORS dirancang untuk mengaktifkan komunikasi yang aman antara domain berbeda, dan menggantinya dengan hack adalah praktik yang berbahaya.