Kuki mungkin lazat, tetapi mereka boleh meninggalkan rasa jahat jika anda tidak memasak dengan betul! Kuki boleh disekat oleh pengguna, ruang penyimpanan terhad kepada empat kuki 20kb setiap domain, hanya rentetan yang boleh digunakan, laluan boleh menyebabkan kekeliruan, dan data biasanya diluluskan sebagai teks biasa dalam header HTTP. Sering kali, kuki boleh menjadi terlalu banyak untuk aplikasi klien yang perlu menyimpan data keadaan sementara.
Nasib baik, terdapat penyelesaian yang membolehkan anda menyimpan data JavaScript dalam penyemak imbas. Data ini dikekalkan di antara beban halaman, ia akan bertahan di belakang/peristiwa seterusnya (walaupun jauh dari domain), ia tidak memerlukan plugin atau kemudahan penyimpanan luar talian, ia akan memegang beberapa maklumat megabait, ia tidak pernah dihantar ke pelayan, dan berfungsi dalam setiap pelayar. Bizarrely, ia berfungsi dengan mengeksploitasi harta window.name (atau window.top.name jika anda menggunakan pelbagai bingkai).
Ia jarang berlaku untuk pemaju menetapkan harta Window.Name. Umumnya, ia hanya diperlukan apabila anda memanipulasi bingkai atau tingkap pop timbul. Walaupun saya berharap anda tidak melakukan itu, anda biasanya tidak perlu menentukan nama untuk tetingkap permulaan aplikasi. Walaupun harta nama masih rentetan, ia boleh memegang beberapa megabait data. Sesetengah versi opera mengehadkannya kepada sekitar 2MB tetapi kebanyakan pelayar menawarkan 10MB atau lebih.
Ia mudah untuk mencuba sendiri. Masukkan kod JavaScript berikut ke dalam halaman di laman web anda:
window.name = "This message will survive between page loads.";
alert(window.name);
Lihat juga: Cara Menulis Perpustakaan Sesi Kurang Kuki untuk JavaScript.
Soalan Lazim (Soalan Lazim) Mengenai Pembolehubah Sesi JavaScript Cookieless
Apakah faedah menggunakan sesi cookieless dalam JavaScript? Pertama, mereka dapat meningkatkan pengalaman pengguna dengan mengekalkan maklumat negeri di beberapa halaman tanpa memerlukan kuki. Ini amat berguna untuk pengguna yang telah melumpuhkan kuki dalam tetapan penyemak imbas mereka. Kedua, sesi cookieless dapat meningkatkan keselamatan aplikasi web anda dengan mengurangkan risiko merampas sesi melalui kecurian cookie. Akhir sekali, mereka juga dapat membantu memastikan pematuhan peraturan privasi yang menyekat penggunaan kuki. ID sesi ini boleh diluluskan di antara klien dan pelayan melalui URL atau medan borang tersembunyi. Di sisi pelayan, anda boleh menggunakan perpustakaan atau rangka kerja pengurusan sesi untuk mengendalikan penciptaan, penyimpanan, dan pengambilan data sesi. Walau bagaimanapun, penting untuk diperhatikan bahawa data yang disimpan dalam sessionStorage hanya tersedia untuk tempoh sesi halaman dan dipadam apabila tab ditutup. Juga, sessionStorage tidak menyediakan sebarang mekanisme terbina dalam untuk mengaitkan data sesi dengan ID sesi yang unik. Untuk mengurangkan risiko ini, penting untuk menggunakan protokol komunikasi yang selamat seperti HTTPS dan untuk melaksanakan langkah -langkah untuk mencegah serangan penetapan sesi, seperti regenerasi ID sesi selepas log masuk. Alat seperti OWASP ZAP dan Burp Suite boleh digunakan untuk melakukan ujian ini. Ia juga penting untuk mengkaji semula kod pengurusan sesi aplikasi anda untuk memastikan ia mengikuti amalan terbaik untuk pengurusan sesi yang selamat. Ini dilakukan dengan menetapkan atribut cookieless dari elemen konfigurasi SesiState untuk benar dalam fail web.config. Modul Negeri Sesi ASP.NET kemudian secara automatik mengendalikan penciptaan, penyimpanan, dan pengambilan data sesi.
Bolehkah saya mengakses pembolehubah sesi dalam javascript?
Ya, anda boleh mengakses pembolehubah sesi dalam JavaScript menggunakan objek SesiStorage. Walau bagaimanapun, ini hanya berfungsi untuk data yang disimpan di sisi klien. Untuk mengakses data sesi pelayan di JavaScript, anda perlu menggunakan Ajax atau teknik yang sama untuk membuat permintaan ke pelayan. Di sisi pelayan, anda boleh menggunakan sesi yang disokong pangkalan data atau kedai sesi yang diedarkan seperti redis atau memcached. Sesi Cookieless boleh memberikan pengalaman pengguna yang lebih baik untuk pengguna yang telah melumpuhkan kuki dan dapat meningkatkan keselamatan dengan mengurangkan risiko merampas sesi. Walau bagaimanapun, mereka berpotensi mendedahkan ID sesi dalam URL. Sesi berasaskan kuki, sebaliknya, lebih mudah dilaksanakan dan tidak mendedahkan ID sesi, tetapi mereka boleh terdedah kepada kecurian cookie dan dipengaruhi oleh tetapan cookie pengguna. Walau bagaimanapun, rangka kerja ini tidak memberikan sokongan terbina dalam sesi cookieless, jadi anda perlu melaksanakannya sendiri atau menggunakan perpustakaan pihak ketiga.
Atas ialah kandungan terperinci Pembolehubah Sesi Kekurangan Kuki dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!