Bukan maksud Saya melawan arus seperti Gus Dur, tapi banyak orang terlalu membesar-besarkan bahaya cookie. Artikel ini akan menjelaskan bahwa cookie tidaklah berbahaya jika Anda mengetahui dengan jelas dan benar apa itu cookie dan bagaimana cara kerjanya.
Saya telah melihat begitu banyak artikel yang membahas bahwa cookie itu berbahaya karena dapat digunakan untuk memantau aktivitas Anda berinternet. Bahkan banyak software telah ditulis untuk menangani cookie (memantau, mengedit, menghapus cookie). Rasanya ini sudah terlalu berlebihan, banyak pengguna internet yang awam menjadi takut mengaktifkan cookie padahal cookie ini sangat berguna. Saya ingin menjelaskan apa itu sebenarnya cookie dan apa bahaya sebenarnya yang ada pada cookie. Setelah membaca artikel ini Anda dapat memutuskan sendiri sebenarnya cookie itu berbahaya atau tidak.
Sebagian besar dokter (yang pasiennya tidak terlalu banyak) akan ingat dengan masing-masing pasiennya dan juga penyakitnya, tapi webserver tidak ingat sama sekali mengenai sebuah klien, kira-kira sama dengan dokter yang punya banyak sekali pasien sampai tidak ingat bahwa pasien ini sedang berobat untuk kedua kalinya sehubungan dengan penyakitnya yang kemarin. Sifat webserver (HTTP server) yang tidak mempedulikan (mengingat-ingat) permintaan ini disebut stateless.
Seorang pasien bisa datang ke dokter untuk beberapa kali untuk keperluan yang sama (penyakit yang sama). Demikian juga seseorang bisa mendatangi beberapa halaman web untuk satu keperluan, misalnya untuk membeli meja belajar (dengan jaminan naik kelas atau uang akan kembali) secara online, dia akan memasuki halaman login, lalu pindah ke halaman pemilihan barang dan memilih meja belajar, pindah ke halaman untuk mengisi metode pembayaran, dan pindah ke halaman lain untuk logout. Karena HTTP server tidak mengingat-ingat kliennya maka harus dicarikan suatu cara agar dia dapat mengingatnya, salah satunya adalah dengan cookie. Cookie ini seperti kartu yang diberikan dokter kepada pasiennya yang harus diberikan setiap kali berobat, jadi cookie dikirim oleh webserver, diterima client (browser) lalu setiap kali mengunjungi halaman lain cookie ini diserahkan ke webserver, dengan melihat isi cookie maka bisa diketahui informasi misalnya :"oh ini client yang tadi sudah login dengan nama login Sakura", atau "nama login: sakura; barang yang dipilih: boneka beruang dan sebuah pin". Cookie bukanlah satu-satunya cara untuk menciptakan suatu sesi pada HTTP. Seperti juga kartu bukanlah satu-satunya cara Pak dokter bisa mengingat/mengetahui kondisi pasiennya (kan bisa saja Pak dokter minta tolong asistennya yang cantik untuk mengingat/mencatat semua pasiennya).
Sebelum dapat memahami cookie Anda harus tahu tentang HTTP. HTTP merupakan suatu protokol stateless yang digunakan untuk world wide web (WWW). Istilah World wide web tentunya Anda sudah tahu. Ada dua istilah yang perlu dijelaskan: protokol dan stateless. Secara singkat dapat dikatakan Protokol merupakan suatu kesepakatan mengenai bagaimana komunikasi akan dilakukan [Tanenbaum, 1992]. Sedangkan stateless artinya protokol ini tidak mempertahankan informasi antara satu permintaan dengan pemintaan lainnya. Server HTTP akan melayani suatu permintaan tanpa tergantung permintaan sebelumnya atau permintaan sesudahnya. Spesifikasi HTTP/1.0 bisa dilihat di RFC 1945 dan HTTP/1.1 bisa dilihat di RFC 2068.
Dengan sifatnya yang stateless, akan sangat sulit untuk membuat suatu aplikasi dengan protokol HTTP yang perlu menangani sebuah sesi (misalnya belanja online). Dalam konteks ini suatu sesi adalah serangkaian permintaan yang berupa suatu kesatuan, misalnya mulai dari Anda login, memilih barang, melakukan pembayaran, sampai logout. Meskipun saat itu ada orang lain yang sama-sama login dan sama-sama memilih barang, barang yang Anda pilih tidak akan bercampur dengan orang itu karena Anda dan orang itu memiliki sesi yang berbeda.
Cookie merupakan salah satu cara untuk menciptakan suatu stateful session dengan HTTP, selain cookie masih ada cara yang lain, namun cara ini yang dinilai paling nyaman dan menjadi standar untuk saat ini. Secara lengkap cara kerja cookie bisa dilihat di RFC 2109.
Jika Anda masih penasaran seperti apa sih tampang sebuah cookie. Ini saya berikan contoh cookie dari browser lynx yang saya dapat dari google:
.google.com FALSE / FALSE 2147368447 PREF ID=490beaea066057e2:TM=959406003
Setiap kali saya mengunjungi google.com cookie itu akan dikirim ke sana.
Cookie bisa dipakai untuk menyimpan informasi login Anda untuk digunakan pada halaman-halaman berikutnya, cookie juga bisa digunakan untuk menyimpan informasi tambahan agar Anda tidak perlu login setiap kali mengunjungi suatu site.
Cookie juga bisa digunakan untuk memantau halaman mana saja yang sudah Anda kunjungi dalam suatu site. Ini yang biasanya dibesar-besarkan oleh media, kata mereka : Anda bisa dilacak dengan cookie. RFC 2109 sendiri sudah menyinggung hal ini:
An origin server could create a Set-Cookie header to track the path of a user through the server. Users may object to this behavior as an intrusive accumulation of information, even if their identity is not evident. (Identity might become evident if a user subsequently fills out a form that contains identifying information.)
Sebenarnya yang bisa dilakukan cookie hanyalah itu, tidak jauh berbeda dengan seorang satpam atau pramuniaga yang mengawasi Anda ketika berbelanja disebuah toko. Dia bisa mengetahui apa saja kebiasaan Anda setiap kali ke toko itu, tapi dia tidak akan tahu apa yang tidak Anda ceritakan (nama Anda misalnya). Jika Anda tidak pernah mengisi data apa-apa untuk suatu site maka cookie yang diberikan site itu hampir tidak berpengaruh pada Anda, bagi pemilik site data seperti itu hanyalah seperti survey (misalnya dia jadi mengetahui bahwa tidak ada yang mengunjugi halaman tertentu dan halaman yang lain sangat disukai pengunjung) tapi dia tidak tahu siapa yang mengisi surveynya.
Anda pernah mengunjungi site yang memerlukan login dan ada tulisan 'remember my login and password'? site seperti itu meyimpan login dan password terenkrip dalam cookie. Dengan adanya fasilitas ini Anda tidak perlu login setiap kali masuk ke site tersebut. Bagi pengguna Internet di rumah yang memakai saluran telepon + modem, ini berarti penghematan pulsa karena Anda tidak perlu meload halaman awal, login dan menunggu sampai halamannya muncul. Site-site tertentu dapat menyimpan setting Anda sehingga memudahkan Anda memakai layanannya, salah satu yang saya perhatikan adalah google. Google memperbolehkan usernya mengeset beberapa hal (misalnya bahasa, jumlah hasil pencarian perhalaman dan lain-lain) dan setting ini akan tetap ada sampai cookienya expires (habis masa aktifnya).
Cookie memang tidak berbahaya, tapi jika cookie ini bisa di salin orang lain, akibatnya bisa fatal. Seperti telah saya ceritakan sebelumnya, cookie ini bisa digunakan untuk menyimpan login dan password, jika cookie ini bisa disalin maka orang yang menyalin cookie itu bisa login dengan login Anda, tanpa password. Namun cara ini (menyalin cookie) tidak selalu berhasil, sebagian besar cookie punya masa aktif, dan banyak site di internet yang akan meng-logout-kan suatu user jika ada dua login dari 2 ip yang berbeda dari user yang sama.
Jadi hati-hati dengan cookie Anda. Di rental atau komputer yang dipakai umum, sebaiknya Anda tidak mengaktifkan pilihan 'remember my login name and password' karena sangat berbahaya. Tapi di rumah atau di tempat pribadi lain (misalnya komputer kantor yang dipakai sendiri, atau laptop) adanya fasilitas ini bisa membantu Anda mengurangi waktu online.
Beberapa browser yang mendukung cookie pada versi awalnya memiliki bug. Bug yang ada memungkinkan sebuah cookie dipertukarkan dengan domain lain (padahal seharusnya tidak boleh). Browser terbaru saat ini (IE 4/5, NS 5/6) sudah bebas dari bug ini.
Artikel ini berasal dari http://langitbiru.hypermart.net