Menyimpan data formulir cookies javascript

Peramban Web dan Server menggunakan protokol HTTP untuk berkomunikasi dan HTTP adalah protokol tanpa kewarganegaraan. Tetapi untuk situs web komersial, diperlukan untuk memelihara informasi sesi di antara halaman yang berbeda. Misalnya, satu pendaftaran pengguna berakhir setelah menyelesaikan banyak halaman. Tetapi bagaimana mempertahankan informasi sesi pengguna di semua halaman web

Dalam banyak situasi, menggunakan cookie adalah metode yang paling efisien untuk mengingat dan melacak preferensi, pembelian, komisi, dan informasi lain yang diperlukan untuk pengalaman pengunjung atau statistik situs yang lebih baik

Bagaimana itu bekerja ?

Server Anda mengirimkan beberapa data ke browser pengunjung dalam bentuk cookie. Browser dapat menerima cookie. Jika ya, itu disimpan sebagai rekaman teks biasa di hard drive pengunjung. Sekarang, saat pengunjung tiba di halaman lain di situs Anda, browser mengirimkan cookie yang sama ke server untuk diambil. Setelah diambil, server Anda mengetahui/mengingat apa yang disimpan sebelumnya

Cookie adalah catatan data teks biasa dari 5 bidang panjang variabel −

  • Kedaluwarsa – Tanggal cookie akan kedaluwarsa. Jika ini kosong, cookie akan kedaluwarsa saat pengunjung keluar dari browser

  • Domain − Nama domain situs Anda

  • Path − Path ke direktori atau halaman web yang mengatur cookie. Ini mungkin kosong jika Anda ingin mengambil cookie dari direktori atau halaman mana pun

  • Aman – Jika bidang ini berisi kata "aman", maka cookie hanya dapat diambil dengan server yang aman. Jika bidang ini kosong, tidak ada batasan seperti itu

  • Name=Value − Cookie diatur dan diambil dalam bentuk key-value pair

Cookie pada awalnya dirancang untuk pemrograman CGI. Data yang terkandung dalam cookie secara otomatis dikirimkan antara browser web dan server web, sehingga skrip CGI di server dapat membaca dan menulis nilai cookie yang disimpan di klien

JavaScript juga dapat memanipulasi cookie menggunakan properti cookie dari objek Dokumen. JavaScript dapat membaca, membuat, memodifikasi, dan menghapus cookie yang berlaku untuk halaman web saat ini

Menyimpan Cookie

Cara paling sederhana untuk membuat cookie adalah dengan menetapkan nilai string ke dokumen. objek cookie, yang terlihat seperti ini

document.cookie = "key1 = value1;key2 = value2;expires = date";

Di sini atribut kedaluwarsa bersifat opsional. Jika Anda memberikan atribut ini dengan tanggal atau waktu yang valid, maka cookie akan kedaluwarsa pada tanggal atau waktu tertentu dan setelah itu, nilai cookie tidak akan dapat diakses

Catatan − Nilai cookie mungkin tidak termasuk titik koma, koma, atau spasi putih. Untuk alasan ini, Anda mungkin ingin menggunakan fungsi JavaScript escape() untuk menyandikan nilai sebelum menyimpannya di cookie. Jika Anda melakukan ini, Anda juga harus menggunakan fungsi unescape() yang sesuai saat membaca nilai cookie

Contoh

Coba yang berikut ini. Ini menetapkan nama pelanggan dalam cookie input

Enter name: _

Keluaran

Sekarang mesin Anda memiliki cookie bernama name. Anda dapat menyetel beberapa cookie menggunakan beberapa kunci = pasangan nilai yang dipisahkan dengan koma

Membaca Cookie

Membaca cookie semudah menulisnya, karena nilai dokumennya. objek cookie adalah cookie. Jadi Anda dapat menggunakan string ini kapan pun Anda ingin mengakses cookie. Dokumen. string cookie akan menyimpan daftar pasangan nama=nilai yang dipisahkan oleh titik koma, di mana nama adalah nama cookie dan nilai adalah nilai stringnya

Anda dapat menggunakan fungsi split() string untuk memecah string menjadi kunci dan nilai sebagai berikut −

Contoh

Coba contoh berikut untuk mendapatkan semua cookie

click the following button and see the result:

Catatan - Di sini panjang adalah metode kelas Array yang mengembalikan panjang array. Kami akan membahas Array di bab terpisah. Pada saat itu, cobalah mencernanya

Catatan − Mungkin ada beberapa cookie lain yang sudah disetel di mesin Anda. Kode di atas akan menampilkan semua cookie yang disetel di mesin Anda

Mengatur Tanggal Kedaluwarsa Cookie

Anda dapat memperpanjang umur cookie di luar sesi browser saat ini dengan menyetel tanggal kedaluwarsa dan menyimpan tanggal kedaluwarsa di dalam cookie. Ini dapat dilakukan dengan menyetel atribut 'kedaluwarsa' ke tanggal dan waktu

Contoh

Coba contoh berikut. Ini mengilustrasikan cara menghapus cookie dengan menyetel tanggal kedaluwarsa menjadi satu bulan di belakang tanggal saat ini

Properti document.cookie = newCookie; _7 document.cookie = newCookie; 8 memungkinkan Anda membaca dan menulis cookie yang terkait dengan dokumen. Ini berfungsi sebagai pengambil dan penyetel untuk nilai sebenarnya dari cookie

allCookies = document.cookie;

Dalam kode di atas document.cookie = newCookie; _9 adalah string yang berisi daftar semua cookie yang dipisahkan titik koma (i. e. // Note that we are setting `SameSite=None;` in this example because the example // needs to work cross-origin. // It is more common not to set the `SameSite` attribute, which results in the default, // and more secure, value of `SameSite=Lax;` document.cookie = "name=oeschger; SameSite=None; Secure"; document.cookie = "favorite_food=tripe; SameSite=None; Secure"; function showCookies() { const output = document.getElementById('cookies') output.textContent = `> ${document.cookie}` } function clearOutputCookies() { const output = document.getElementById('cookies') output.textContent = '' } 0 pasang). Perhatikan bahwa setiap kunci dan nilai dapat diapit oleh spasi putih (karakter spasi dan tab). sebenarnya, RFC 6265 mengamanatkan satu spasi setelah setiap titik koma, tetapi beberapa agen pengguna mungkin tidak mematuhi ini

document.cookie = newCookie;

Pada kode di atas, // Note that we are setting `SameSite=None;` in this example because the example // needs to work cross-origin. // It is more common not to set the `SameSite` attribute, which results in the default, // and more secure, value of `SameSite=Lax;` document.cookie = "name=oeschger; SameSite=None; Secure"; document.cookie = "favorite_food=tripe; SameSite=None; Secure"; function showCookies() { const output = document.getElementById('cookies') output.textContent = `> ${document.cookie}` } function clearOutputCookies() { const output = document.getElementById('cookies') output.textContent = '' } _1 adalah string bentuk // Note that we are setting `SameSite=None;` in this example because the example // needs to work cross-origin. // It is more common not to set the `SameSite` attribute, which results in the default, // and more secure, value of `SameSite=Lax;` document.cookie = "name=oeschger; SameSite=None; Secure"; document.cookie = "favorite_food=tripe; SameSite=None; Secure"; function showCookies() { const output = document.getElementById('cookies') output.textContent = `> ${document.cookie}` } function clearOutputCookies() { const output = document.getElementById('cookies') output.textContent = '' } 0, yang menentukan cookie untuk disetel/diperbarui. Perhatikan bahwa Anda hanya dapat mengatur/memperbarui satu cookie pada satu waktu menggunakan metode ini. Pertimbangkan juga itu

  • Salah satu dari nilai atribut cookie berikut secara opsional dapat mengikuti key-value pair, masing-masing didahului oleh pemisah titik koma
    • // Note that we are setting `SameSite=None;` in this example because the example // needs to work cross-origin. // It is more common not to set the `SameSite` attribute, which results in the default, // and more secure, value of `SameSite=Lax;` document.cookie = "name=oeschger; SameSite=None; Secure"; document.cookie = "favorite_food=tripe; SameSite=None; Secure"; function showCookies() { const output = document.getElementById('cookies') output.textContent = `> ${document.cookie}` } function clearOutputCookies() { const output = document.getElementById('cookies') output.textContent = '' } 3 (mis. g. , '// Note that we are setting `SameSite=None;` in this example because the example // needs to work cross-origin. // It is more common not to set the `SameSite` attribute, which results in the default, // and more secure, value of `SameSite=Lax;` document.cookie = "name=oeschger; SameSite=None; Secure"; document.cookie = "favorite_food=tripe; SameSite=None; Secure"; function showCookies() { const output = document.getElementById('cookies') output.textContent = `> ${document.cookie}` } function clearOutputCookies() { const output = document.getElementById('cookies') output.textContent = '' } 4' atau '// Note that we are setting `SameSite=None;` in this example because the example // needs to work cross-origin. // It is more common not to set the `SameSite` attribute, which results in the default, // and more secure, value of `SameSite=Lax;` document.cookie = "name=oeschger; SameSite=None; Secure"; document.cookie = "favorite_food=tripe; SameSite=None; Secure"; function showCookies() { const output = document.getElementById('cookies') output.textContent = `> ${document.cookie}` } function clearOutputCookies() { const output = document.getElementById('cookies') output.textContent = '' } 5'). Host tempat cookie akan dikirim. Jika tidak ditentukan, ini default ke bagian host dari lokasi dokumen saat ini. Bertentangan dengan spesifikasi sebelumnya, titik awal dalam nama domain diabaikan, tetapi browser dapat menolak untuk menyetel cookie yang berisi titik tersebut. Jika domain ditentukan, subdomain selalu disertakan

      Catatan. Domain harus cocok dengan domain asal JavaScript. Menyetel cookie ke domain asing akan diabaikan secara diam-diam

    • // Note that we are setting `SameSite=None;` in this example because the example // needs to work cross-origin. // It is more common not to set the `SameSite` attribute, which results in the default, // and more secure, value of `SameSite=Lax;` document.cookie = "name=oeschger; SameSite=None; Secure"; document.cookie = "favorite_food=tripe; SameSite=None; Secure"; function showCookies() { const output = document.getElementById('cookies') output.textContent = `> ${document.cookie}` } function clearOutputCookies() { const output = document.getElementById('cookies') output.textContent = '' } 6. Tanggal kedaluwarsa cookie. Jika // Note that we are setting `SameSite=None;` in this example because the example // needs to work cross-origin. // It is more common not to set the `SameSite` attribute, which results in the default, // and more secure, value of `SameSite=Lax;` document.cookie = "name=oeschger; SameSite=None; Secure"; document.cookie = "favorite_food=tripe; SameSite=None; Secure"; function showCookies() { const output = document.getElementById('cookies') output.textContent = `> ${document.cookie}` } function clearOutputCookies() { const output = document.getElementById('cookies') output.textContent = '' } 7 atau // Note that we are setting `SameSite=None;` in this example because the example // needs to work cross-origin. // It is more common not to set the `SameSite` attribute, which results in the default, // and more secure, value of `SameSite=Lax;` document.cookie = "name=oeschger; SameSite=None; Secure"; document.cookie = "favorite_food=tripe; SameSite=None; Secure"; function showCookies() { const output = document.getElementById('cookies') output.textContent = `> ${document.cookie}` } function clearOutputCookies() { const output = document.getElementById('cookies') output.textContent = '' } 8 tidak ditentukan, itu akan kedaluwarsa pada akhir sesi

      Peringatan. Saat privasi pengguna menjadi perhatian, implementasi aplikasi web apa pun harus membatalkan data cookie setelah waktu tunggu tertentu alih-alih mengandalkan browser untuk melakukannya. Banyak browser membiarkan pengguna menentukan bahwa cookie tidak boleh kedaluwarsa, yang belum tentu aman

      Lihat // Note that we are setting `SameSite=None;` in this example because the example // needs to work cross-origin. // It is more common not to set the `SameSite` attribute, which results in the default, // and more secure, value of `SameSite=Lax;` document.cookie = "name=oeschger; SameSite=None; Secure"; document.cookie = "favorite_food=tripe; SameSite=None; Secure"; function showCookies() { const output = document.getElementById('cookies') output.textContent = `> ${document.cookie}` } function clearOutputCookies() { const output = document.getElementById('cookies') output.textContent = '' } _9 untuk membantu memformat nilai ini
    • <button title="showCookies()">Show cookies</button> <button title="clearOutputCookies()">Clear</button> <div> <code id="cookies"></code> </div> _0. Usia maksimum cookie dalam hitungan detik (mis. g. , <button title="showCookies()">Show cookies</button> <button title="clearOutputCookies()">Clear</button> <div> <code id="cookies"></code> </div> _1 atau 31536000 selama setahun)
    • <button title="showCookies()">Show cookies</button> <button title="clearOutputCookies()">Clear</button> <div> <code id="cookies"></code> </div> _2. Menunjukkan bahwa cookie harus disimpan menggunakan penyimpanan yang dipartisi. Lihat Cookie Memiliki Status Partisi Independen (CHIPS) untuk detail lebih lanjut
    • <button title="showCookies()">Show cookies</button> <button title="clearOutputCookies()">Clear</button> <div> <code id="cookies"></code> </div> _3. Menunjukkan jalur yang harus ada di URL yang diminta agar browser mengirimkan header <button title="showCookies()">Show cookies</button> <button title="clearOutputCookies()">Clear</button> <div> <code id="cookies"></code> </div> 4 (e. g. , '<button title="showCookies()">Show cookies</button> <button title="clearOutputCookies()">Clear</button> <div> <code id="cookies"></code> </div> 5', '<button title="showCookies()">Show cookies</button> <button title="clearOutputCookies()">Clear</button> <div> <code id="cookies"></code> </div> 6'). Jika tidak ditentukan, defaultnya adalah jalur saat ini dari lokasi dokumen saat ini
    • <button title="showCookies()">Show cookies</button> <button title="clearOutputCookies()">Clear</button> <div> <code id="cookies"></code> </div> _7. mencegah browser mengirimkan cookie ini bersama dengan permintaan lintas situs. Nilai yang mungkin adalah <button title="showCookies()">Show cookies</button> <button title="clearOutputCookies()">Clear</button> <div> <code id="cookies"></code> </div> 8, <button title="showCookies()">Show cookies</button> <button title="clearOutputCookies()">Clear</button> <div> <code id="cookies"></code> </div> 9 atau // Note that we are setting `SameSite=None;` in this example because the example // needs to work cross-origin. // It is more common not to set the `SameSite` attribute, which results in the default, // and more secure, value of `SameSite=Lax;` document.cookie = "test1=Hello; SameSite=None; Secure"; document.cookie = "test2=World; SameSite=None; Secure"; const cookieValue = document.cookie .split('; ') .find((row) => row.startsWith('test2=')) ?.split('=')[1]; function showCookieValue() { const output = document.getElementById('cookie-value') output.textContent = `> ${cookieValue}` } function clearOutputCookieValue() { const output = document.getElementById('cookie-value') output.textContent = '' } 0
      • Nilai <button title="showCookies()">Show cookies</button> <button title="clearOutputCookies()">Clear</button> <div> <code id="cookies"></code> </div> _8 akan mengirimkan cookie untuk semua permintaan situs yang sama dan permintaan GET navigasi tingkat atas. Ini cukup untuk pelacakan pengguna, tetapi akan mencegah banyak serangan Cross-Site Request Forgery (CSRF). Ini adalah nilai default di browser modern
      • Nilai <button title="showCookies()">Show cookies</button> <button title="clearOutputCookies()">Clear</button> <div> <code id="cookies"></code> </div> _9 akan mencegah cookie dikirim oleh browser ke situs target dalam semua konteks penjelajahan lintas situs, bahkan saat mengikuti tautan biasa
      • Nilai // Note that we are setting `SameSite=None;` in this example because the example // needs to work cross-origin. // It is more common not to set the `SameSite` attribute, which results in the default, // and more secure, value of `SameSite=Lax;` document.cookie = "test1=Hello; SameSite=None; Secure"; document.cookie = "test2=World; SameSite=None; Secure"; const cookieValue = document.cookie .split('; ') .find((row) => row.startsWith('test2=')) ?.split('=')[1]; function showCookieValue() { const output = document.getElementById('cookie-value') output.textContent = `> ${cookieValue}` } function clearOutputCookieValue() { const output = document.getElementById('cookie-value') output.textContent = '' } _0 secara eksplisit menyatakan tidak ada batasan yang akan diterapkan. Cookie akan dikirim dalam semua permintaan—baik lintas situs maupun situs yang sama
    • // Note that we are setting `SameSite=None;` in this example because the example // needs to work cross-origin. // It is more common not to set the `SameSite` attribute, which results in the default, // and more secure, value of `SameSite=Lax;` document.cookie = "test1=Hello; SameSite=None; Secure"; document.cookie = "test2=World; SameSite=None; Secure"; const cookieValue = document.cookie .split('; ') .find((row) => row.startsWith('test2=')) ?.split('=')[1]; function showCookieValue() { const output = document.getElementById('cookie-value') output.textContent = `> ${cookieValue}` } function clearOutputCookieValue() { const output = document.getElementById('cookie-value') output.textContent = '' } 4. Menentukan bahwa cookie hanya boleh dikirim melalui protokol yang aman
  • String nilai cookie dapat menggunakan // Note that we are setting `SameSite=None;` in this example because the example // needs to work cross-origin. // It is more common not to set the `SameSite` attribute, which results in the default, // and more secure, value of `SameSite=Lax;` document.cookie = "test1=Hello; SameSite=None; Secure"; document.cookie = "test2=World; SameSite=None; Secure"; const cookieValue = document.cookie .split('; ') .find((row) => row.startsWith('test2=')) ?.split('=')[1]; function showCookieValue() { const output = document.getElementById('cookie-value') output.textContent = `> ${cookieValue}` } function clearOutputCookieValue() { const output = document.getElementById('cookie-value') output.textContent = '' } _5 untuk memastikan bahwa string tidak berisi koma, titik koma, atau spasi putih (yang tidak diperbolehkan dalam nilai cookie)
  • Beberapa implementasi agen pengguna mendukung awalan cookie berikut
    • // Note that we are setting `SameSite=None;` in this example because the example // needs to work cross-origin. // It is more common not to set the `SameSite` attribute, which results in the default, // and more secure, value of `SameSite=Lax;` document.cookie = "test1=Hello; SameSite=None; Secure"; document.cookie = "test2=World; SameSite=None; Secure"; const cookieValue = document.cookie .split('; ') .find((row) => row.startsWith('test2=')) ?.split('=')[1]; function showCookieValue() { const output = document.getElementById('cookie-value') output.textContent = `> ${cookieValue}` } function clearOutputCookieValue() { const output = document.getElementById('cookie-value') output.textContent = '' } 6 Memberi sinyal ke browser bahwa browser hanya boleh menyertakan cookie dalam permintaan yang dikirim melalui saluran aman
    • // Note that we are setting `SameSite=None;` in this example because the example // needs to work cross-origin. // It is more common not to set the `SameSite` attribute, which results in the default, // and more secure, value of `SameSite=Lax;` document.cookie = "test1=Hello; SameSite=None; Secure"; document.cookie = "test2=World; SameSite=None; Secure"; const cookieValue = document.cookie .split('; ') .find((row) => row.startsWith('test2=')) ?.split('=')[1]; function showCookieValue() { const output = document.getElementById('cookie-value') output.textContent = `> ${cookieValue}` } function clearOutputCookieValue() { const output = document.getElementById('cookie-value') output.textContent = '' } 7 Sinyal ke browser bahwa selain pembatasan untuk hanya menggunakan cookie dari asal yang aman, ruang lingkup cookie terbatas pada atribut jalur yang diturunkan oleh server. Jika server menghilangkan atribut jalur, "direktori" dari URI permintaan digunakan. Ini juga menandakan bahwa atribut domain tidak boleh ada, yang mencegah cookie dikirim ke domain lain. Untuk Chrome, atribut path harus selalu asal

    Catatan. Tanda hubung dianggap sebagai bagian dari awalan

    Catatan. Bendera ini hanya dapat disetel dengan atribut // Note that we are setting `SameSite=None;` in this example because the example // needs to work cross-origin. // It is more common not to set the `SameSite` attribute, which results in the default, // and more secure, value of `SameSite=Lax;` document.cookie = "test1=Hello; SameSite=None; Secure"; document.cookie = "test2=World; SameSite=None; Secure"; const cookieValue = document.cookie .split('; ') .find((row) => row.startsWith('test2=')) ?.split('=')[1]; function showCookieValue() { const output = document.getElementById('cookie-value') output.textContent = `> ${cookieValue}` } function clearOutputCookieValue() { const output = document.getElementById('cookie-value') output.textContent = '' } 8

Catatan. Seperti yang Anda lihat dari kode di atas, // Note that we are setting `SameSite=None;` in this example because the example // needs to work cross-origin. // It is more common not to set the `SameSite` attribute, which results in the default, // and more secure, value of `SameSite=Lax;` document.cookie = "test1=Hello; SameSite=None; Secure"; document.cookie = "test2=World; SameSite=None; Secure"; const cookieValue = document.cookie .split('; ') .find((row) => row.startsWith('test2=')) ?.split('=')[1]; function showCookieValue() { const output = document.getElementById('cookie-value') output.textContent = `> ${cookieValue}` } function clearOutputCookieValue() { const output = document.getElementById('cookie-value') output.textContent = '' } 9 adalah dengan fungsi penyetel dan pengambil asli, dan akibatnya bukan dengan nilai. apa yang Anda tulis tidak sama dengan apa yang Anda baca, semuanya selalu dimediasi oleh juru bahasa JavaScript

// Note that we are setting `SameSite=None;` in this example because the example // needs to work cross-origin. // It is more common not to set the `SameSite` attribute, which results in the default, // and more secure, value of `SameSite=Lax;` document.cookie = "name=oeschger; SameSite=None; Secure"; document.cookie = "favorite_food=tripe; SameSite=None; Secure"; function showCookies() { const output = document.getElementById('cookies') output.textContent = `> ${document.cookie}` } function clearOutputCookies() { const output = document.getElementById('cookies') output.textContent = '' }

<button title="showCookies()">Show cookies</button> <button title="clearOutputCookies()">Clear</button> <div> <code id="cookies"></code> </div>

// Note that we are setting `SameSite=None;` in this example because the example // needs to work cross-origin. // It is more common not to set the `SameSite` attribute, which results in the default, // and more secure, value of `SameSite=Lax;` document.cookie = "test1=Hello; SameSite=None; Secure"; document.cookie = "test2=World; SameSite=None; Secure"; const cookieValue = document.cookie .split('; ') .find((row) => row.startsWith('test2=')) ?.split('=')[1]; function showCookieValue() { const output = document.getElementById('cookie-value') output.textContent = `> ${cookieValue}` } function clearOutputCookieValue() { const output = document.getElementById('cookie-value') output.textContent = '' }

<button title="showCookieValue()">Show cookie value</button> <button title="clearOutputCookieValue()">Clear</button> <div> <code id="cookie-value"></code> </div>

Untuk menggunakan kode berikut, silakan ganti semua kemunculan kata <button title="showCookieValue()">Show cookie value</button> <button title="clearOutputCookieValue()">Clear</button> <div> <code id="cookie-value"></code> </div> 0 (nama cookie) dengan nama kustom

function doOnce() { if (!document.cookie.split('; ').find((row) => row.startsWith('doSomethingOnlyOnce'))) { // Note that we are setting `SameSite=None;` in this example because the example // needs to work cross-origin. // It is more common not to set the `SameSite` attribute, which results in the default, // and more secure, value of `SameSite=Lax;` document.cookie = "doSomethingOnlyOnce=true; expires=Fri, 31 Dec 9999 23:59:59 GMT; SameSite=None; Secure"; const output = document.getElementById('do-once') output.textContent = '> Do something here!' } } function clearOutputDoOnce() { const output = document.getElementById('do-once') output.textContent = '' }

<button title="doOnce()">Only do something once</button> <button title="clearOutputDoOnce()">Clear</button> <div> <code id="do-once"></code> </div>

function resetOnce() { // Note that we are setting `SameSite=None;` in this example because the example // needs to work cross-origin. // It is more common not to set the `SameSite` attribute, which results in the default, // and more secure, value of `SameSite=Lax;` document.cookie = "doSomethingOnlyOnce=; expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=None; Secure"; const output = document.getElementById('reset-once') output.textContent = '> Reset!' } function clearOutputResetOnce() { const output = document.getElementById('reset-once') output.textContent = '' }

<button title="resetOnce()">Reset only once cookie</button> <button title="clearOutputResetOnce()">Clear</button> <div> <code id="reset-once"></code> </div>

document.cookie = newCookie; 0

document.cookie = newCookie; 1

document.cookie = newCookie; 2

document.cookie = newCookie; _3

Penting untuk diperhatikan bahwa atribut <button title="showCookieValue()">Show cookie value</button> <button title="clearOutputCookieValue()">Clear</button> <div> <code id="cookie-value"></code> </div> 1 tidak melindungi dari pembacaan cookie yang tidak sah dari jalur yang berbeda. Itu dapat dengan mudah dilewati menggunakan DOM, misalnya dengan membuat elemen <button title="showCookieValue()">Show cookie value</button> <button title="clearOutputCookieValue()">Clear</button> <div> <code id="cookie-value"></code> </div> 2 tersembunyi dengan jalur cookie, lalu mengakses properti <button title="showCookieValue()">Show cookie value</button> <button title="clearOutputCookieValue()">Clear</button> <div> <code id="cookie-value"></code> </div> 3 iframe ini. Satu-satunya cara untuk melindungi cookie adalah dengan menggunakan domain atau subdomain yang berbeda, karena kebijakan asal yang sama

Cookie sering digunakan dalam aplikasi web untuk mengidentifikasi pengguna dan sesi yang diautentikasi. Mencuri cookie dari aplikasi web mengarah pada pembajakan sesi pengguna yang diautentikasi. Cara umum untuk mencuri cookie termasuk menggunakan rekayasa sosial atau dengan mengeksploitasi kerentanan cross-site scripting (XSS) dalam aplikasi -

document.cookie = newCookie; _4

Atribut cookie <button title="showCookieValue()">Show cookie value</button> <button title="clearOutputCookieValue()">Clear</button> <div> <code id="cookie-value"></code> </div> 4 dapat membantu mengurangi serangan ini dengan mencegah akses ke nilai cookie melalui JavaScript. Baca lebih lanjut tentang Cookie dan Keamanan

  • Dimulai dengan Firefox 2, tersedia mekanisme yang lebih baik untuk penyimpanan sisi klien - WHATWG DOM Storage
  • Anda dapat menghapus cookie dengan memperbarui waktu kedaluwarsanya menjadi nol
  • Ingatlah bahwa semakin banyak cookie yang Anda miliki, semakin banyak data yang akan ditransfer antara server dan klien untuk setiap permintaan. Ini akan membuat setiap permintaan lebih lambat. Sangat disarankan bagi Anda untuk menggunakan WHATWG DOM Storage jika Anda ingin menyimpan data "khusus klien"
  • RFC 2965 (Bagian 5. 3, "Implementation Limits") menetapkan bahwa tidak boleh ada panjang maksimum dari ukuran kunci atau nilai cookie, dan mendorong implementasi untuk mendukung cookie besar yang sewenang-wenang. Implementasi maksimum setiap browser pasti akan berbeda, jadi bacalah dokumentasi masing-masing browser

Alasan properti pengakses // Note that we are setting `SameSite=None;` in this example because the example // needs to work cross-origin. // It is more common not to set the `SameSite` attribute, which results in the default, // and more secure, value of `SameSite=Lax;` document.cookie = "test1=Hello; SameSite=None; Secure"; document.cookie = "test2=World; SameSite=None; Secure"; const cookieValue = document.cookie .split('; ') .find((row) => row.startsWith('test2=')) ?.split('=')[1]; function showCookieValue() { const output = document.getElementById('cookie-value') output.textContent = `> ${cookieValue}` } function clearOutputCookieValue() { const output = document.getElementById('cookie-value') output.textContent = '' } _9 adalah karena sifat cookie server-klien, yang berbeda dari metode penyimpanan klien-klien lainnya (seperti, misalnya, penyimpanan lokal)

Bagaimana cara menyimpan data formulir dalam cookie di JavaScript?

Proses pengaturan cookie adalah sebagai berikut. .
masukkan nilai dalam formulir dan klik Kirim;
formulir memanggil JavaScript untuk menyetel empat cookie. bidang1, bidang2, bidang3, bidang4;
formulir tersebut kemudian dikirimkan, membawa Anda ke halaman berikutnya

Bisakah kita menyimpan data dalam cookie?

Data yang disimpan dalam cookie dibuat oleh server setelah koneksi Anda . Data ini diberi label dengan ID unik untuk Anda dan komputer Anda. Saat cookie dipertukarkan antara komputer Anda dan server jaringan, server membaca ID dan mengetahui informasi apa yang secara khusus disajikan kepada Anda.

Bagaimana Anda menyimpan data dalam cookie di reaksi JS?

Pertama, bungkus file index. js atau komponen aplikasi root dari aplikasi Anda dengan komponen CookiesProvider dari paket react-cookie. .
Kue. objek Javascript dengan semua cookie pengguna
setCookie. Berfungsi untuk mengatur cookie
hapusCookie. Berfungsi untuk menghapus cookie

Bagaimana cara membuat cookie di JavaScript?

Cookie dibuat oleh dokumen. kata kunci cookie seperti yang ditunjukkan di bawah ini. Contoh. Pada contoh di bawah ini, kami akan mengambil input dari pengguna sebagai nama cookie dan menyimpannya dalam nilai cookie. Kemudian nilai cookie disimpan dalam format string dengan menambahkan atribut 'nama' dan kemudian cookie dibuat di browser

Postingan terbaru

LIHAT SEMUA