22 poin oleh ragus 2025-01-10 | Belum ada komentar. | Bagikan ke WhatsApp

1. Pahami bahwa CORS adalah solusi sementara untuk menutupi cacat desain browser.

  • CORS (Cross-Origin Resource Sharing) menangani masalah keamanan yang muncul dari kredensial implisit pada permintaan lintas origin.
  • Perilaku bawaan browser membuat pengguna berisiko terekspos pada serangan XSRF.
  • CORS berusaha mengurangi masalah ini, tetapi memiliki keterbatasan mendasar dalam cakupan keamanannya.

2. CORS mencegah pembacaan hasil dari permintaan lintas origin, tetapi tidak memblokir permintaannya sendiri.

  • fun-games.example tidak dapat membaca data dari your-bank.example, tetapi tetap bisa menjalankan permintaan yang mengubah status seperti transfer dana.
  • Ini terjadi karena cara browser menangani cookie dan kredensial secara default.

3. Keamanan lintas origin yang efektif dimulai dengan mengabaikan kredensial implisit.

  • Hapus atau izinkan secara eksplisit cookie dan kredensial serupa pada permintaan lintas origin.
  • Gunakan middleware yang memanfaatkan header Sec-Fetch-* untuk memfilter atau menghapus cookie lintas origin.

4. Kredensial eksplisit adalah alternatif yang lebih aman daripada kredensial implisit.

  • Gunakan header Authorization untuk token autentikasi alih-alih cookie.
  • Kredensial eksplisit mencegah penyalahgunaan kredensial antar-situs.
  • Ini tidak cocok untuk situs yang dirender di server, tetapi merupakan metode optimal untuk API dan aplikasi sisi klien.

5. Terapkan cookie SameSite untuk membatasi penggunaan kredensial lintas origin.

  • Gunakan SameSite=Lax agar cookie tidak disertakan dalam permintaan lintas origin secara default.
  • Pilih SameSite=Strict untuk kebijakan yang lebih ketat. Namun, ini dapat memengaruhi kegunaan (misalnya logout setelah navigasi lintas origin).

6. Terapkan kebijakan CORS yang sederhana dan aman.

  • Kebijakan dasar: Access-Control-Allow-Origin: * dan Access-Control-Allow-Methods: * hanya mengizinkan akses anonim.
  • Kebijakan ini menonaktifkan kredensial implisit pada permintaan lintas origin sehingga melindungi situs dari penyalahgunaan kredensial yang tidak disengaja.

7. Jangan membuat kebijakan CORS terlalu rumit demi keamanan.

  • Pengaturan yang terlalu spesifik dapat menciptakan rasa aman yang keliru.
  • Proxy CORS dan solusi lain dapat melewati kebijakan yang ditegakkan browser, sehingga upaya pembatasan akses menjadi tidak efektif.

8. Pahami gerakan yang lebih luas menuju default web yang lebih aman.

  • Browser sedang mengeksplorasi pendekatan seperti State Partitioning (Firefox), Tracking Prevention (Safari), dan CHIPS (Chrome) untuk mengatasi masalah kredensial lintas origin.
  • Inisiatif ini berupaya meningkatkan keamanan dan privasi pengguna dengan membatasi berbagi cookie dan kredensial antar-origin.

9. Sadari bahwa CORS adalah solusi yang tidak sempurna.

  • Kompatibilitas mundur CORS menambah kompleksitas tanpa sepenuhnya menyelesaikan masalah keamanan dasarnya.
  • Browser perlahan mengadopsi pendekatan baru untuk mengurangi masalah ini, tetapi kemajuannya tidak konsisten.

Belum ada komentar.

Belum ada komentar.