Dapatkah javascript membaca semua cookie?

Dalam posting jQuery terakhir saya, saya melihat cara menyetel, mendapatkan, dan menghapus cookie dengan jQuery dan sekarang lihat cara mendapatkan daftar semua cookie yang telah disetel. Ini bukan khusus jQuery dan hanya akan berfungsi dengan Javascript biasa

Plugin jQuery Cookie (http. // plugin. jquery. com/project/Cookie) berguna untuk mendapatkan nilai cookie ketika Anda sudah mengetahui nama cookie yang ingin Anda kueri, tetapi tidak menyediakan cara untuk mendapatkan daftar semua cookie yang disetel

Fungsi berikut memuat semuanya ke dalam array asosiatif dengan nama cookie sebagai indeks dan nilai cookie sebagai nilainya

function get_cookies_array() {

    var cookies = { };

    if (document.cookie && document.cookie != '') {
        var split = document.cookie.split(';');
        for (var i = 0; i < split.length; i++) {
            var name_value = split[i].split("=");
            name_value[0] = name_value[0].replace(/^ /, '');
            cookies[decodeURIComponent(name_value[0])] = decodeURIComponent(name_value[1]);
        }
    }

    return cookies;
   
}

Anda kemudian bisa mendapatkan cookie dan menuliskannya ke dalam dokumen seperti itu

var cookies = get_cookies_array();
for(var name in cookies) {
  document.write( name + " : " + cookies[name] + "<br />" );
}
_

Perhatikan bahwa "nilai_nama[0] = nilai_nama[0]. replace(/^ /, ”);" baris menghapus spasi awal dari nama cookie yang akan ada untuk cookie kedua dan selanjutnya

Sangat umum bahwa kita semua masih menggunakan cookie HTTP atau HTTPS untuk menyimpan berbagai data di browser pengunjung. Namun dalam HTML5, Anda dapat menggunakan lokal untuk menyimpan berbagai data. Saya berbicara tentang cara lama untuk mendapatkan semua cookie menggunakan Javascript. Di sini karena kami masih memiliki browser lama untuk menangani cookie

Plugin jQuery Cookie (http. // plugin. jquery. com/project/Cookie) berguna untuk mendapatkan nilai cookie ketika Anda sudah mengetahui nama cookie yang ingin Anda kueri dari browser, tetapi tidak menyediakan cara untuk mendapatkan daftar semua cookie yang sudah disetel

Fungsi Javascript berikut memuat semuanya ke dalam array asosiatif dengan nama cookie sebagai indeks dan nilai cookie sebagai nilainya

fungsi get_cookies_array() {

var cookie = { };

jika (dokumen. cookie && dokumen. Kue kering. = ”) {
var split = dokumen. Kue kering. membelah(';');
untuk (var i = 0; i < bagi. panjang;
var nama_nilai = pisah[i]. belah(“=”);
nilai_nama[0] = nilai_nama[0]. ganti(/^ /, ”);
cookie[decodeURIComponent(nama_nilai[0])] = decodeURIComponent(nama_nilai[1]);
}
}

mengembalikan cookie;

}
var cookie = get_cookies_array();
untuk (nama var dalam cookie) {
menghibur. log( nama + ”. ” + cookie[nama] + “
” );
}

Anda kemudian bisa mendapatkan cookie dan menuliskannya ke dalam dokumen seperti itu

var cookie = get_cookies_array();
untuk (nama var dalam cookie) {
document.write( name + ” : ” + cookies[name] + “
” );
}

Anda dapat mengakses informasi cookie dalam javascript menggunakan dokumen. fungsi cookie, tetapi Anda hanya dapat membaca cookie yang berada di domain yang sama dengan skrip yang sedang dijalankan

Dengan JavaScript, Anda dapat dengan mudah mengakses/membaca cookie dengan “document. cookie”. Membaca cookie semudah menulisnya karena nilai dokumennya. objek cookie adalah cookie

Dokumen. string cookie akan menyimpan daftar pasangan nama=nilai yang dipisahkan oleh titik koma, di mana nama adalah nama cookie dan nilainya adalah nilai stringnya

Pada artikel ini, kita akan mempelajari cara mengakses cookie menggunakan objek dokumen di JavaScript

Sintaksis

document.cookie

Nilai pengembalian − Semua cookie disimpan di browser dalam satu string

Dokumen. string cookie akan menyimpan daftar pasangan nama=nilai yang dipisahkan oleh titik koma, di mana nama adalah nama cookie dan nilainya adalah nilai stringnya

Langkah

Untuk mengekstrak cookie tertentu menggunakan namanya, Anda dapat membagi string cookie di setiap titik koma, membuat objek Peta untuk menyimpan pasangan nilai kunci, dan mengulang array pasangan cookie, menyetel elemen pertama sebagai kunci dan yang kedua . Anda kemudian dapat mengambil cookie yang diinginkan dengan namanya dari Peta. Teknik ini berguna untuk menyimpan dan mengambil informasi di browser pengguna, seperti preferensi pengguna atau kredensial login

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

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 masukan

      
            
   
   
         
      
         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 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

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

Jadi, saat mengakses cookie menggunakan JavaScript sisi klien, hanya cookie yang memiliki domain yang sama dengan yang ada di bilah URL yang dapat diakses. Similarly, only the cookies that share the same domain as the HTTP request's domain are sent along with the request headers to the server.
Tidak bisa . Satu-satunya cookie yang dapat Anda baca dengan JavaScript sisi klien adalah milik host dokumen HTML tempat
Cookie dapat diakses melalui javascript jika tidak memiliki set header HttpOnly. Penyerang yang berhasil melakukan XSS atau menjalankan skrip sisi klien dapat mengakses cookie jika tidak memiliki flag HttpOnly yang ditetapkan. Cookie dengan set flag HttpOnly tidak dapat diakses melalui javascript sisi klien
Bagaimana cara melihat cookie di Chrome? .
Klik pada tiga titik di sudut kanan atas dan klik Pengaturan
Pilih Privasi dan keamanan dan klik Cookie dan data situs lainnya
Klik Lihat semua cookie dan data situs