Berbagi Sumber Daya Lintas Asal (CORS) adalah kebijakan keamanan penting yang memungkinkan server aplikasi web mengontrol akses lintas asal. Kebijakan ini mendukung transmisi data aman lintas asal. Gateway berbasis cloud-native memungkinkan Anda mengonfigurasi kebijakan CORS di tingkat rute. Anda dapat mengakses sumber daya dari nama domain tertentu menggunakan metode permintaan spesifik sesuai dengan kebutuhan bisnis Anda. Hal ini membantu mencegah risiko keamanan seperti pemalsuan permintaan lintas situs dan memastikan keandalan serta keamanan layanan.
Konfigurasikan Kebijakan CORS
Masuk ke Konsol MSE. Di bilah navigasi atas, pilih wilayah.
Di panel navigasi kiri, pilih Cloud-native Gateway > Gateways. Pada halaman Gateways, klik ID gateway.
Di panel navigasi kiri, klik Routes. Kemudian, klik tab Routes.
Pada tab Routes, temukan aturan routing yang ingin dimodifikasi dan klik Policies di kolom Actions.
Pada tab Policies, klik CORS.
CatatanKebijakan CORS tidak berlaku untuk layanan mock. Anda harus mengonfigurasi layanan uji backend yang sebenarnya.
Konfigurasikan parameter pada tab CORS dan klik Simpan.
Parameter
Deskripsi
Allowed Origins
Asal yang diizinkan untuk mengakses sumber daya di server saat ini melalui browser. Aturan konfigurasi:
Untuk menentukan semua asal, masukkan tanda bintang (
*).Untuk menentukan nama domain utama, gunakan tanda bintang (*) sebagai karakter wildcard dalam nama domain, seperti
*.example.com.Untuk menentukan beberapa asal, masukkan setiap asal di baris terpisah. Setiap asal harus dimulai dengan
http://atauhttps://.
CatatanNama domain yang ditentukan adalah nilai dari header
Access-Control-Allow-Origin. Jika header Origin dari permintaan yang dikirim oleh klien cocok dengan asal yang ditentukan dalam parameter ini, headerAccess-Control-Allow-Origindalam respons diatur ke nilai Origin dari permintaan.Allowed Methods
Metode HTTP yang diizinkan untuk permintaan CORS. Nilai valid: GET, POST, PUT, DELETE, HEAD, OPTIONS, dan PATCH.
CatatanMetode yang ditentukan adalah nilai dari header Access-Control-Allow-Methods.
Allowed Request Headers
Header tambahan yang diizinkan dalam permintaan CORS selain header bawaan browser. Aturan konfigurasi:
Untuk menentukan semua header permintaan, masukkan tanda bintang (
*).Untuk menentukan beberapa header permintaan, masukkan setiap header permintaan di baris terpisah.
CatatanHeader yang ditentukan adalah nilai dari header Access-Control-Allow-Headers.
Allowed Response Headers
Header respons yang dapat diperoleh oleh browser dan file JavaScript. Aturan konfigurasi:
Untuk menentukan semua header respons, masukkan tanda bintang (
*).Untuk menentukan beberapa header respons, masukkan setiap header respons di baris terpisah.
CatatanHeader yang ditentukan adalah nilai dari header Access-Control-Expose-Headers.
Allow to Carry Credentials
Menentukan apakah akan mengizinkan kredensial dalam permintaan CORS.
CatatanNilai parameter ini adalah nilai dari header Access-Control-Allow-Credentials.
Precheck Expiration Time
Jangka waktu maksimum selama permintaan preflight yang menggunakan metode OPTIONS disimpan dalam cache.
CatatanJangka waktu yang ditentukan adalah nilai dari header Access-Control-Max-Age.
Enable
Menentukan apakah akan mengaktifkan kebijakan CORS.Enable
Jika Anda mengaktifkan kebijakan, permintaan CORS diizinkan berdasarkan kebijakan.
Jika Anda menonaktifkan kebijakan, semua permintaan CORS ditolak.
Verifikasi hasil
Jalankan perintah berikut untuk memeriksa hasil:
curl -I -H "Origin: http://example.com" -H 'Host: www.test.com' -X OPTIONS http://121.196.XX.XX/demo/item/listRespons yang mirip dengan berikut ini akan dikembalikan:
HTTP/1.1 200 OK allow: GET,HEAD,OPTIONS x-content-type-options: nosniff x-xss-protection: 1; mode=block cache-control: no-cache, no-store, max-age=0, must-revalidate pragma: no-cache expires: 0 x-frame-options: DENY content-length: 0 date: Tue, 30 Nov 2021 03:20:31 GMT x-envoy-upstream-service-time: 6 access-control-allow-origin: http://example.com access-control-allow-credentials: true access-control-expose-headers: * server: istio-envoy
Referensi
Untuk informasi lebih lanjut tentang CORS, lihat Berbagi Sumber Daya Lintas Asal (CORS).