Dalam pengembangan aplikasi web modern, salah satu tantangan yang sering ditemui adalah masalah CORS atau Cross-Origin Resource Sharing. Kesalahan konfigurasi pada CORS dapat menyebabkan aplikasi web tidak dapat berkomunikasi dengan server secara optimal, bahkan menyebabkan fitur tertentu gagal bekerja. Oleh karena itu, penting bagi pengembang untuk memahami dan mengatur CORS dengan benar sesuai kebutuhan aplikasi.
CORS adalah mekanisme keamanan di browser yang membatasi permintaan yang dibuat dari domain yang berbeda (origin). Hal ini bertujuan untuk melindungi pengguna dari serangan seperti cross-site scripting dan memberikan kontrol bagi pengembang server tentang siapa yang boleh mengakses sumber daya mereka.
*) tanpa mempertimbangkan risiko keamanan. Kondisi ini dapat memudahkan data sensitif terekspos kepada pihak yang tidak berhak.
Access-Control-Allow-Origin, Access-Control-Allow-Methods, dan Access-Control-Allow-Headers harus diatur dengan benar. Kesalahan penulisan atau pengaturan dapat membuat browser memblokir permintaan.
OPTIONS request dengan benar, browser tidak akan melanjutkan permintaan utama aplikasi.
Solusi utama untuk mengatasi masalah ini adalah dengan mengatur CORS pada web server sesuai kebutuhan aplikasi. Artinya, hanya origin yang benar-benar memerlukan akses saja yang diizinkan, dan header yang diperlukan oleh aplikasi diatur secara spesifik.
*) kecuali untuk penggunaan sangat terbatas dan tidak sensitif.
Access-Control-Allow-Origin: Cantumkan origin yang dibutuhkan.Access-Control-Allow-Methods: Tentukan metode HTTP yang diizinkan, misal GET, POST, PUT.Access-Control-Allow-Headers: Munculkan header yang dibutuhkan aplikasi.OPTIONS request secara benar.
1. Apache: Tambahkan baris berikut pada file .htaccess atau konfigurasi server.
Header set Access-Control-Allow-Origin "https://domain-aplikasi.com"
Header set Access-Control-Allow-Methods "GET, POST, OPTIONS"
Header set Access-Control-Allow-Headers "Content-Type, Authorization"
2. Nginx: Pada bagian server block, tambahkan:
add_header "Access-Control-Allow-Origin" "https://domain-aplikasi.com";
add_header "Access-Control-Allow-Methods" "GET, POST, OPTIONS";
add_header "Access-Control-Allow-Headers" "Content-Type, Authorization";
3. Express.js (Node.js): Gunakan package cors untuk konfigurasi yang lebih mudah.
const cors = require("cors");
app.use(cors({
origin: "https://domain-aplikasi.com",
methods: ["GET", "POST", "OPTIONS"],
allowedHeaders: ["Content-Type", "Authorization"]
}));
Salah konfigurasi CORS merupakan kesalahan umum yang sering terjadi pada aplikasi web. Selain menyebabkan aplikasi menjadi tidak optimal, juga berpotensi menimbulkan risiko keamanan yang besar. Dengan mengidentifikasi origin yang benar, mengatur header secara spesifik, serta melakukan testing dan monitoring, pengembang dapat mencegah dan mengatasi masalah ini.
Pengaturan CORS yang tepat adalah bagian penting dari ketahanan aplikasi web dan keamanan data. Selalu pastikan konfigurasi dilakukan sesuai kebutuhan aplikasi dan tidak asal membolehkan akses.