Bagaimana cara kerja cookie dan sesi di php?

Baik cookie dan sesi tersedia untuk Anda sebagai pengembang PHP, dan keduanya melakukan tugas yang hampir sama untuk menyimpan data di seluruh halaman di situs Anda. Namun, ada perbedaan antara keduanya yang akan membuat masing-masing menguntungkan dalam keadaan mereka sendiri

Cookie dapat diatur ke umur panjang, yang berarti bahwa data yang disimpan dalam cookie dapat disimpan selama berbulan-bulan jika tidak bertahun-tahun. Cookie, menyimpan datanya di klien, bekerja dengan lancar ketika Anda memiliki sekelompok server web, sedangkan sesi disimpan di server, artinya di salah satu server web Anda menangani permintaan pertama, server web lain di cluster Anda tidak akan

Sesi disimpan di server, yang berarti klien tidak memiliki akses ke informasi yang Anda simpan tentang mereka - ini sangat penting jika Anda menyimpan keranjang belanja atau informasi lain yang Anda tidak ingin pengunjung dapat mengedit dengan tangan dengan meretasnya . Data sesi, yang disimpan di server Anda, tidak perlu dikirimkan dengan setiap halaman; . Terakhir, sesi dapat berukuran berapa pun yang Anda inginkan karena diadakan di server Anda, sedangkan banyak browser web memiliki batasan seberapa besar cookie untuk menghentikan situs web nakal mengunyah gigabyte data dengan informasi cookie yang tidak berarti

Jadi, seperti yang Anda lihat, masing-masing memiliki kelebihannya sendiri, tetapi pada akhirnya biasanya hanya ada satu pilihan. apakah Anda ingin data Anda berfungsi ketika pengunjung Anda kembali keesokan harinya? . Jika Anda tidak memerlukan data semi-permanen, maka sesi umumnya lebih disukai, karena lebih mudah digunakan, tidak memerlukan datanya dikirim secara keseluruhan dengan setiap halaman, dan juga dibersihkan segera setelah pengunjung Anda tutup.

Ingin belajar PHP7?

Peretasan dengan PHP telah diperbarui sepenuhnya untuk PHP 7, dan sekarang tersedia sebagai PDF yang dapat diunduh. Dapatkan lebih dari 1200 halaman pembelajaran langsung PHP hari ini

Jika ini membantu, luangkan waktu sejenak untuk memberi tahu orang lain tentang Meretas dengan PHP dengan men-tweet tentangnya

- Dalam bab ini, kita akan melihat secara mendetail implikasi keamanan sesi, dimulai dengan ikhtisar dasar tentang Cara Kerja Sesi PHP. Ini akan meletakkan dasar untuk menyusun strategi untuk meminimalkan risiko sesi persisten yang tidak mengharuskan pengguna untuk masuk setiap kali mereka mengunjungi situs. Komunikasi dasar antara browser dan server web tidak memiliki kewarganegaraan. Artinya adalah browser mengirimkan permintaan ke server web, dan server merespons dengan mengirimkan halaman web yang diminta dan aset terkait, seperti gambar dan style sheet. Selain mengetahui ke mana harus mengirim semuanya, server tidak tertarik pada siapa Anda. Setiap permintaan dan tanggapan diperlakukan secara independen. Komunikasi tanpa kewarganegaraan ini membuat tidak mungkin menyimpan detail seperti nama pengunjung, preferensi, atau isi keranjang belanja. Cookie adalah salah satu cara untuk menyimpan informasi di berbagai permintaan. Browser mengirimkan permintaan ke server web dengan cara biasa. Ketika server merespons, ia mengirimkan cookie untuk disimpan oleh browser. Ini adalah serangkaian pasangan nama-nilai untuk mengidentifikasi pengguna bersama dengan informasi yang akan dipertahankan di antara permintaan. Lain kali browser mengirimkan permintaan, semua informasi dalam cookie dikirim kembali ke server. Meskipun cookie dapat dienkripsi, ada bahaya bahwa informasi tersebut dapat dicegat. Ini juga tidak efisien untuk terus mengirimkan informasi bolak-balik. Sesi mengatasi masalah ini menggunakan kombinasi cookie dan penyimpanan sisi server. Browser mengirimkan permintaan ke server. PHP merespons dengan mengirimkan token unik yang mengidentifikasi sesi saat ini. Ini dikenal sebagai ID sesi. Dalam semua permintaan berikutnya, browser mengirimkan ID sesi untuk mengatakan, "Hai, ini saya lagi. " Semua data lain yang terkait dengan sesi disimpan di server web. Hanya ID sesi yang diteruskan bolak-balik. Ada dua cara menyebarkan ID sesi. Itu dapat disimpan sebagai cookie di browser pengguna atau dapat diteruskan melalui URL sebagai bagian dari string kueri. Menyematkan ID sesi dalam string kueri memperlihatkannya secara kasat mata kepada calon penyerang. Ini adalah risiko keamanan yang besar, kami tidak akan melihat bagaimana melakukannya dalam kursus ini. Selalu gunakan cookie untuk menyimpan ID sesi. Inisialisasi Sesi sangat mudah. Cukup aktifkan session_start(); . Itu tidak perlu menjadi baris paling pertama dari skrip, tetapi harus muncul sebelum keluaran apa pun dikirim ke browser. Anda menyimpan data yang ingin tersedia di seluruh aplikasi Anda sebagai variabel sesi dengan menambahkannya ke larik superglobal SESSION. Contoh ini membuat variabel sesi yang disebut 'authenticated' dan menyetel nilainya menjadi true. Jika nilainya berasal dari input pengguna, seringkali merupakan ide bagus untuk membersihkannya sebelum menyimpannya sebagai variabel sesi. Dalam contoh ini, 'nama' berasal dari larik POST, sehingga diteruskan ke htmlentities() sebelum ditetapkan ke SESSION 'nama' Jika Anda tidak membersihkan input pengguna pada tahap ini, Anda harus ingat untuk melakukannya setiap kali Anda . SESSION adalah array superglobal, sehingga tersedia di setiap halaman yang memanggil session_start() Secara default, cookie yang menyimpan ID sesi akan kedaluwarsa saat browser ditutup, tetapi data yang terkait dengan sesi tidak dihapus secara otomatis pada saat yang sama. Ini sering tetap berada di server web tempat disimpan dalam teks biasa. Demi keamanan, sebaiknya hapus data sesi yang tidak diperlukan lagi. Namun, sulit untuk menjamin bahwa pengguna akan logout sebelum meninggalkan situs Anda sehingga tidak selalu memungkinkan. Namun bukan berarti data tetap berada di server web tanpa batas waktu. Pengumpulan sampah PHP berjalan secara berkala untuk menghapus file data sesi yang kedaluwarsa. Ini memiliki implikasi untuk membuat sesi persisten. Pertama-tama, kita perlu memastikan bahwa cookie yang mengidentifikasi pengguna tetap aktif bahkan setelah browser ditutup. Kami perlu memastikan bahwa data sesi tidak dikumpulkan dari sampah sampai benar-benar tidak diperlukan lagi. Dan kita perlu menyimpan data seaman mungkin. Dengan mengingat poin-poin ini, selanjutnya kita akan memeriksa opsi untuk mengonfigurasi sesi PHP

Berlatih sambil belajar dengan file latihan

Unduh file yang digunakan instruktur untuk mengajar kursus. Ikuti dan pelajari dengan menonton, mendengarkan, dan berlatih

Unduh kursus dan pelajari saat bepergian

Tonton kursus di perangkat seluler Anda tanpa koneksi internet. Unduh kursus menggunakan aplikasi LinkedIn Learning iOS atau Android Anda

Sesi dimulai saat Anda meluncurkan situs web atau aplikasi web dan berakhir saat Anda meninggalkan situs web atau menutup jendela browser. Cookie sesi berisi informasi yang disimpan di lokasi memori sementara yang dihapus setelah sesi berakhir . Tidak seperti cookie lainnya, cookie sesi tidak pernah disimpan di perangkat Anda.
Cookie adalah file sisi klien yang disimpan di komputer lokal dan berisi informasi pengguna. Sesi adalah file sisi server yang menyimpan informasi pengguna . Cookie kedaluwarsa setelah masa hidup yang ditentukan pengguna. Sesi berakhir ketika pengguna menutup browser atau keluar dari program.

Apa itu sesi PHP dan bagaimana cara kerjanya?

PHP merespons dengan mengirimkan token unik yang mengidentifikasi sesi saat ini . Ini dikenal sebagai ID sesi. Dalam semua permintaan berikutnya, browser mengirimkan ID sesi untuk mengatakan, "Hai, ini saya lagi. " Semua data lain yang terkait dengan sesi disimpan di server web. Hanya ID sesi yang diteruskan bolak-balik.