CORS Allow All: Biar ga ada error CORS buat FE, padahal kan bahaya...

2025-07-12

pro-kontra-developer

๐Ÿ“ข DISCLAIMER

"Ga semua error CORS harus diselesaikan dengan Allow All. Kadang kita cuma butuh komunikasi antar tim."

๐Ÿ’ฌ Squad Chat Group

T

si tester

Mas ini API-nya bisa diakses dari mana aja loh. Bahkan dari localhost.

09.13

P

si paling praktis

Iya biar gampang develop, jadi gw allow all aja dulu.

09.14

R

si paling ribet

Lo tau ga itu kebuka buat siapa pun? Cross-origin bisa nyedot data, bro!

09.15

T

si tester

Gak sengaja keakses dari eksternal loh. Gawat ini mah...

09.15

๐ŸŸข Tim Pro: Kenapa Allow All CORS Dianggap Solusi?

  • Gampang untuk development frontend โ€” no more CORS error!
  • Nggak perlu nentuin origin satu-satu
  • Cocok untuk rapid prototyping atau API internal
  • Kadang client minta akses cepat dari domain mana pun

๐Ÿ”ด Tim Kontra: Bahaya CORS Allow All

  • Security Risk: API bisa diakses dari situs manapun โ€” rawan data theft
  • Data Exposure: Web yang nggak kamu kenal bisa kirim request seenaknya
  • Credential Leak: Jika credentials: true, token/cookie bisa ikut terkirim
  • False Sense of Safety: FE jalan, tapi tanpa kontrol akses yang jelas

๐Ÿงช Analisa & Sudut Pandang Secure Coding

CORS itu bukan pengaman utama โ€” tapi filter request dari origin berbeda. Kalau kamu buka ke semua origin:

  • Kamu membiarkan web luar berpura-pura jadi klien sah
  • Kalau API kamu nggak pakai otentikasi ketat, bisa disalahgunakan
  • Bahkan dengan token: browser tetap bisa ngirim request atas nama user

๐Ÿšจ Bad Practices

โŒ NGERI INI MAH!!!

Konfigurasi Access-Control-Allow-Origin: * + Access-Control-Allow-Credentials: true itu kombinasi mematikan. Browser akan blok, tapi attacker bisa eksploit API lain yang gak strict.

Ts

// โŒ Contoh di Express.js
app.use((req, res, next) => {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Credentials", "true");
  next();
});

๐Ÿ›ก๏ธ Secure Best Practices

โœ… Mantap!

CORS itu kayak whitelist. Gunakan dengan hati-hati. Buat daftar origin sah, dan hindari wildcard jika ada token/cookie.

Ts

// โœ… Contoh whitelist origin
const allowedOrigins = ["https://myfrontend.com", "https://admin.harscode.dev"];

app.use((req, res, next) => {
  const origin = req.headers.origin;
  if (allowedOrigins.includes(origin)) {
    res.header("Access-Control-Allow-Origin", origin);
    res.header("Access-Control-Allow-Credentials", "true");
  }
  next();
});
โš ๏ธ Waspada, Lur!

โš ๏ธ Allow All itu shortcut, bukan solusi. Hati-hati kalau shortcut-nya justru ngelewatin security gate.

โœ… Takeaway Developer

Kadang kita terlalu fokus biar FE gak error. Tapi jangan sampai solusi instan jadi jebakan keamanan jangka panjang.

  • Gunakan origin whitelist
  • Hati-hati saat credentials: true
  • Komunikasikan kebutuhan FE dan API sejak awal
  • Review ulang konfigurasi CORS sebelum naik production
Ilustrasi Developer Galau: CORS Allow All vs Security
SituasiRekomendasi
Dev/test environmentBoleh pakai wildcard, tapi nonaktifkan di production
Production APIWhitelist origin + validasi credential
Public APIBuka hanya GET, tanpa credential
โ„น๏ธ Info Gaes!

โ„น๏ธ CORS error emang ngeselin. Tapi solusi jangka pendek nggak boleh jadi kompromi keamanan jangka panjang.

๐Ÿค” Diskusi & Sharing Pengalaman

Lo tim Allow All biar cepet atau Strict Origin biar aman? Pernah ga nemu API kebuka buat siapa aja โ€” bahkan dari domain nggak jelas?

Yuk cerita. Kita bukan mau judging. Kita mau saling aware. ๐Ÿง 

Konten Terkait :

Any Any di Typescript: Males kok bilangnya biar Fleksibel