IkhtisarExpress.js menggunakan cookie untuk menyimpan id sesi (dengan tanda tangan enkripsi) di browser pengguna dan kemudian, atas permintaan berikutnya, menggunakan nilai cookie itu untuk mengambil informasi sesi yang disimpan di server. Penyimpanan sisi server ini dapat berupa penyimpanan memori (default) atau toko lain yang mengimplementasikan metode yang diperlukan (seperti connect-redis ). Show
Table of Contents
DetailExpress.js/Connect membuat string 24-karakter Base64 menggunakan Sisi klienCookie yang ditandatangani selalu digunakan untuk sesi, sehingga nilai cookie akan memiliki format berikut.
Di mana [sid] adalah sessionID dan [tanda tangan] dihasilkan dengan menandatangani [sid] menggunakan kunci rahasia yang disediakan saat menginisialisasi middleware sesi. Langkah penandatanganan dilakukan untuk mencegah gangguan. Seharusnya tidak dapat dihitung secara komputasional untuk memodifikasi [sid] dan kemudian membuat ulang [signature] tanpa sepengetahuan kunci rahasia yang digunakan. Cookie sesi masih rentan terhadap pencurian dan penggunaan kembali, jika tidak diperlukan modifikasi [sid]. Nama untuk cookie ini adalah
Sisi serverJika handler muncul setelah Berikut adalah contoh cara mengatur rute yang akan memeriksa keberadaan cookie sesi pada setiap permintaan dan mencetak nilainya ke konsol.
Anda juga harus memastikan router ( Berikut ini adalah contoh data yang disimpan secara internal oleh Express.js/Connect.
Bidang Contohnya adalah dari Express 2.5. Untuk melihat iklan Google di situs, aktifkan JavaScript di browser Anda. Mengaktifkan JavaScript di Google Chrome
Mengaktifkan JavaScript di browser lainIkuti petunjuk yang diberikan oleh browser Anda:
Upgrade browser, software keamanan, atau patch dapat mengubah setelan JavaScript browser Anda. Jika mengalami masalah saat melihat iklan Google, pastikan JavaScript diaktifkan di browser Anda. Jika setelan JavaScript ditetapkan ke "Prompt", situs yang menayangkan iklan Google dapat menampilkan peringatan. Apakah ini membantu? Bagaimana cara meningkatkannya? Lompati ke konten utama Browser ini sudah tidak didukung. Mutakhirkan ke Microsoft Edge untuk memanfaatkan fitur, pembaruan keamanan, dan dukungan teknis terkini. Menangani ITP di Safari dan browser lain tempat cookie pihak ketiga diblokir
Dalam artikel iniBanyak browser memblokir cookie pihak ketiga, cookie berdasarkan permintaan ke domain selain domain yang ditampilkan di bilah alamat browser. Hal ini memutus alur implisit dan memerlukan pola autentikasi baru agar berhasil memasukkan pengguna. Di platform identitas Microsoft, kami menggunakan alur otorisasi dengan Proof Key for Code Exchange (PKCE) dan refresh token untuk memastikan pengguna tetap masuk saat cookie pihak ketiga diblokir. Apa itu Intelligent Tracking Protection (ITP)?Apple Safari memiliki fitur perlindungan privasi yang secara default aktif bernama Intelligent Tracking Protection atau ITP. ITP memblokir cookie "pihak ketiga", cookie berdasarkan permintaan yang melintasi domain. Bentuk umum pelacakan pengguna dilakukan dengan memuat iframe ke situs pihak ketiga di latar belakang dan menggunakan cookie untuk menghubungkan pengguna di seluruh Internet. Sayangnya, pola ini juga merupakan cara standar untuk menerapkan alur implisit dalam aplikasi halaman tunggal (SPAs). Ketika browser memblokir cookie pihak ketiga untuk mencegah pelacakan pengguna, SPAs juga rusak. Safari tidak sendirian dalam memblokir cookie pihak ketiga untuk meningkatkan privasi pengguna. Brave telah memblokir cookie pihak ketiga secara default, dan Chromium (platform di balik Google Chrome dan Microsoft Edge) telah mengumumkan bahwa mereka juga akan berhenti mendukung cookie pihak ketiga di masa mendatang. Solusi yang diuraikan dalam artikel ini berfungsi di semua browser ini, atau di mana saja cookie pihak ketiga diblokir. Gambaran umum solusiUntuk terus mengautentikasi pengguna di SPAs, pengembang aplikasi harus menggunakan alur kode otorisasi. Dalam alur kode auth, penyedia identitas mengeluarkan kode, dan SPA menukar kode untuk token akses dan token refresh. Ketika aplikasi memerlukan token tambahan, aplikasi dapat menggunakan alur token refresh untuk mendapatkan token baru. Microsoft Authentication Library (MSAL) untuk JavaScript v2.0, mengimplementasikan alur kode otorisasi untuk SPA dan, dengan pembaruan kecil, adalah pengganti drop-in untuk MSAL.js 1.x. Untuk platform identitas Microsoft, SPAs dan klien asli mengikuti panduan protokol serupa:
SPAs memiliki dua batasan tambahan:
Implikasi kinerja dan UXBeberapa aplikasi menggunakan upaya masuk alur implisit tanpa mengalihkan dengan membuka iframe login menggunakan Ada dua cara untuk menyelesaikan proses masuk:
Menggunakan iframePola umum di aplikasi web adalah menggunakan iframe untuk menyematkan satu aplikasi di dalam aplikasi lain: bingkai tingkat atas yang menangani autentikasi pengguna dan aplikasi yang dihosting di iframe dapat mempercayai bahwa pengguna telah masuk, mengambil token secara diam-diam menggunakan alur implisit. Akuisisi token senyap tidak lagi berfungsi ketika cookie pihak ketiga diblokir - aplikasi yang disematkan di iframe harus beralih menggunakan popup untuk mengakses sesi pengguna karena tidak dapat bernavigasi ke halaman login. Anda dapat mencapai akses menyeluruh antara aplikasi iframe dan aplikasi induk dengan akses API skrip JavaScript asal yang sama dan lintas asal dengan meneruskan petunjuk pengguna (akun) dari aplikasi induk ke aplikasi iframe. Untuk informasi selengkapnya, lihat Menggunakan MSAL.js di aplikasi iframed di repositori MSAL.js di GitHub. Pelajari lebih lanjut tentang implikasi keamanan token refresh di browserMenerbitkan token refresh ke browser dianggap sebagai masalah keamanan. Serangan skrip lintas situs (XSS) atau paket JS yang disusupi dapat mencuri token refresh dan menggunakannya dari jarak jauh sampai kedaluwarsa atau dicabut. Untuk meminimalkan risiko token refresh yang dicuri, SPAs akan diberi token yang berlaku hanya selama 24 jam. Setelah 24 jam, aplikasi harus memperoleh kode otorisasi baru melalui kunjungan bingkai tingkat atas ke halaman log masuk. Pola token refresh seumur hidup terbatas ini dipilih sebagai keseimbangan antara keamanan dan UX yang terdegradasi. Tanpa token refresh atau cookie pihak ketiga, alur kode otorisasi (seperti yang direkomendasikan oleh draf praktik terbaik saat ini keamanan OAuth)menjadi berat ketika token baru atau tambahan diperlukan. Pengalihan halaman penuh atau popup diperlukan untuk setiap token, setiap kali token kedaluwarsa (biasanya setiap jam, untuk token platform identitas Microsoft). Langkah berikutnyaUntuk informasi selengkapnya tentang alur kode otorisasi dan MSAL.js, lihat:
|