Apa cookie http bagaimana menangani di php?

Cookie adalah sepotong kecil data yang dikirim dari situs web dan disimpan di komputer pengguna oleh browser web pengguna saat pengguna menjelajah

Berikut adalah parameter yang melibatkan cookie

ParameterDetailsnameNama cookie. Ini juga merupakan kunci yang dapat Anda gunakan untuk mengambil nilai dari _______ 98 _______ super global. Ini adalah satu-satunya parameter yang diperlukan. valueNilai untuk disimpan dalam cookie. Data ini dapat diakses oleh browser, jadi jangan simpan apa pun yang sensitif di sini. expireStempel waktu Unix yang menunjukkan kapan cookie harus kedaluwarsa. Jika disetel ke nol, cookie akan kedaluwarsa pada akhir sesi. Jika disetel ke angka yang kurang dari stempel waktu Unix saat ini, cookie akan segera kedaluwarsa. pathCakupan cookie. Jika disetel ke / cookie akan tersedia di seluruh domain. Jika disetel ke
0 maka cookie hanya akan tersedia di jalur tersebut dan turunan dari jalur tersebut. Default ke jalur saat ini dari file tempat cookie diatur. 
1Domain atau subdomain tempat cookie tersedia. Jika diatur ke domain kosong (mis. g. jobtensor. com) maka cookie akan tersedia untuk domain tersebut dan semua subdomain. Jika disetel ke subdomain (mis. g. pekerjaan. jobtensor. com) maka cookie hanya akan tersedia di subdomain tersebut, dan semua subdomain. 
2Ketika disetel ke 
3, cookie hanya akan disetel jika ada koneksi HTTPS yang aman antara klien dan server. 
4Menetapkan bahwa cookie hanya boleh tersedia melalui protokol HTTP/S dan tidak boleh tersedia untuk bahasa skrip sisi klien seperti JavaScript. Hanya tersedia dalam PHP 5. 2 atau lebih baru

Cookie dapat diatur atau dimodifikasi menggunakan sintaks berikut

setcookie(name, value, expire, path, domain, secure, httponly);

Perhatikan bahwa

  • Cookie adalah bagian dari header HTTP, jadi
    5 harus dipanggil sebelum output dikirim ke browser
  • Saat memodifikasi cookie, pastikan jalur dan parameter domain
    5 cocok dengan cookie yang ada atau cookie baru akan dibuat sebagai gantinya
  • Porsi nilai cookie akan secara otomatis di-urlencode ketika Anda mengirim cookie, dan ketika diterima, secara otomatis didekode dan ditugaskan ke variabel dengan nama yang sama dengan nama cookie

Berikut adalah contoh pengaturan cookie

7
  • (Opsional) Nilai cookie adalah
    8
  • (Opsional) Cookie akan kedaluwarsa dalam 1 hari (
    9)
  • (Opsional) Cookie tersedia di seluruh situs web /
  • (Opsional) Cookie hanya dikirim melalui
    1
  • (Opsional) Cookie tidak dapat diakses oleh bahasa skrip seperti JavaScript
  • Fungsi

    2 dapat digunakan pada variabel $_COOKIE superglobal untuk memeriksa apakah cookie disetel

    _4

    Untuk menghapus cookie, setel stempel waktu kedaluwarsa ke waktu di masa lalu. Ini memicu mekanisme penghapusan browser

    Note: When deleting a cookie make sure the path and domain parameters of ________0_______5 matches the cookie you're trying to delete or a new cookie, which expires immediately, will be created.

    Cookies, or browser cookies, are small pieces of data which the web server asks the client's web browser to store. Each request back to the server will include these pieces of data. The data is organized as key/value pairs.

    A cookie can be set using PHP's setcookie() fungsi.

    Pada permintaan mendatang, pasangan kunci/nilai cookie akan ditetapkan ke $_COOKIE superglobal

    Selain argumen $name dan

    0, setcookie() juga menerima banyak argumen lain untuk konfigurasi

    Banyak dari argumen konfigurasi ini penting untuk mencegah serangan seperti Pencurian dan Manipulasi Cookie, Pembajakan Sesi, dan Fiksasi Sesi

    Cookie HTTP (cookie web, cookie browser) adalah sepotong kecil data yang dikirimkan server ke browser web pengguna. Browser dapat menyimpan cookie dan mengirimkannya kembali ke server yang sama dengan permintaan selanjutnya. Biasanya, cookie HTTP digunakan untuk mengetahui apakah dua permintaan berasal dari browser yang sama—misalnya, membuat pengguna tetap login. Itu mengingat informasi stateful untuk protokol HTTP

    Cookie terutama digunakan untuk tiga tujuan

    Manajemen sesi

    Login, keranjang belanja, skor game, atau apa pun yang harus diingat oleh server

    Personalisasi

    Preferensi pengguna, tema, dan pengaturan lainnya

    Pelacakan

    Merekam dan menganalisis perilaku pengguna

    Cookie pernah digunakan untuk penyimpanan sisi klien umum. Meskipun ini masuk akal ketika mereka adalah satu-satunya cara untuk menyimpan data pada klien, API penyimpanan modern sekarang direkomendasikan. Cookie dikirim dengan setiap permintaan, sehingga dapat memperburuk kinerja (terutama untuk koneksi data seluler). API modern untuk penyimpanan klien adalah Web Storage API (localStorage dan sessionStorage) dan IndexedDB

    Catatan. Untuk melihat cookie yang tersimpan (dan penyimpanan lain yang dapat digunakan halaman web), Anda dapat mengaktifkan Storage Inspector di Developer Tools dan memilih Cookies dari struktur penyimpanan

    Setelah menerima permintaan HTTP, server dapat mengirim satu atau lebih Set-Cookie header dengan respons. Browser biasanya menyimpan cookie dan mengirimkannya dengan permintaan yang dibuat ke server yang sama di dalam header HTTP

    HTTP/2.0 200 OK
    Content-Type: text/html
    Set-Cookie: yummy_cookie=choco
    Set-Cookie: tasty_cookie=strawberry
    
    [page content]
    
    0. Anda dapat menentukan tanggal kedaluwarsa atau periode waktu yang setelahnya cookie tidak boleh dikirim. Anda juga dapat mengatur batasan tambahan untuk domain tertentu dan jalur untuk membatasi kemana cookie dikirimkan. Untuk detail tentang atribut tajuk yang disebutkan di bawah, lihat artikel referensi Set-Cookie

    Header respons HTTP Set-Cookie mengirimkan cookie dari server ke agen pengguna. Cookie sederhana diatur seperti ini

    Set-Cookie: <cookie-name>=<cookie-value>
    

    Ini menginstruksikan server mengirimkan header untuk memberitahu klien untuk menyimpan sepasang cookie

    HTTP/2.0 200 OK
    Content-Type: text/html
    Set-Cookie: yummy_cookie=choco
    Set-Cookie: tasty_cookie=strawberry
    
    [page content]
    

    Kemudian, dengan setiap permintaan selanjutnya ke server, browser mengirimkan semua cookie yang disimpan sebelumnya kembali ke server menggunakan header

    HTTP/2.0 200 OK
    Content-Type: text/html
    Set-Cookie: yummy_cookie=choco
    Set-Cookie: tasty_cookie=strawberry
    
    [page content]
    
    0

    GET /sample_page.html HTTP/2.0
    Host: www.example.org
    Cookie: yummy_cookie=choco; tasty_cookie=strawberry
    

    Catatan. Berikut cara menggunakan header Set-Cookie di berbagai aplikasi sisi server

    • PHP
    • Piton
    • Ruby di Rel

    Umur cookie dapat ditentukan dalam dua cara

    • Cookie sesi dihapus saat sesi saat ini berakhir. Browser menentukan kapan "sesi saat ini" berakhir, dan beberapa browser menggunakan pemulihan sesi saat memulai ulang. Ini dapat menyebabkan cookie sesi bertahan tanpa batas waktu
    • Cookie permanen dihapus pada tanggal yang ditentukan oleh atribut
      HTTP/2.0 200 OK
      Content-Type: text/html
      Set-Cookie: yummy_cookie=choco
      Set-Cookie: tasty_cookie=strawberry
      
      [page content]
      
      7, atau setelah jangka waktu yang ditentukan oleh atribut
      HTTP/2.0 200 OK
      Content-Type: text/html
      Set-Cookie: yummy_cookie=choco
      Set-Cookie: tasty_cookie=strawberry
      
      [page content]
      
      8

    Sebagai contoh

    Set-Cookie: id=a3fWa; Expires=Thu, 31 Oct 2021 07:28:00 GMT;
    

    Catatan. Saat Anda menyetel tanggal dan waktu

    HTTP/2.0 200 OK
    Content-Type: text/html
    Set-Cookie: yummy_cookie=choco
    Set-Cookie: tasty_cookie=strawberry
    
    [page content]
    
    _7, tanggal dan waktu tersebut relatif terhadap klien tempat cookie disetel, bukan server

    Jika situs Anda mengotentikasi pengguna, itu harus membuat ulang dan mengirim ulang cookie sesi, bahkan yang sudah ada, setiap kali pengguna mengautentikasi. Pendekatan ini membantu mencegah , di mana pihak ketiga dapat menggunakan kembali sesi pengguna

    Anda dapat memastikan bahwa cookie dikirim dengan aman dan tidak diakses oleh pihak atau skrip yang tidak diinginkan dengan salah satu dari dua cara. dengan atribut

    GET /sample_page.html HTTP/2.0
    Host: www.example.org
    Cookie: yummy_cookie=choco; tasty_cookie=strawberry
    
    0 dan atribut
    GET /sample_page.html HTTP/2.0
    Host: www.example.org
    Cookie: yummy_cookie=choco; tasty_cookie=strawberry
    
    1

    Cookie dengan atribut

    GET /sample_page.html HTTP/2.0
    Host: www.example.org
    Cookie: yummy_cookie=choco; tasty_cookie=strawberry
    
    _0 hanya dikirim ke server dengan permintaan terenkripsi melalui protokol HTTPS. Itu tidak pernah dikirim dengan HTTP tanpa jaminan (kecuali di localhost), yang berarti penyerang man-in-the-middle tidak dapat mengaksesnya dengan mudah. Situs tidak aman (dengan
    GET /sample_page.html HTTP/2.0
    Host: www.example.org
    Cookie: yummy_cookie=choco; tasty_cookie=strawberry
    
    _3 di URL) tidak dapat menyetel cookie dengan atribut
    GET /sample_page.html HTTP/2.0
    Host: www.example.org
    Cookie: yummy_cookie=choco; tasty_cookie=strawberry
    
    0. Namun, jangan berasumsi bahwa
    GET /sample_page.html HTTP/2.0
    Host: www.example.org
    Cookie: yummy_cookie=choco; tasty_cookie=strawberry
    
    0 mencegah semua akses ke informasi sensitif di cookie. Misalnya, seseorang dengan akses ke hard disk klien (atau JavaScript jika atribut
    GET /sample_page.html HTTP/2.0
    Host: www.example.org
    Cookie: yummy_cookie=choco; tasty_cookie=strawberry
    
    1 tidak disetel) dapat membaca dan mengubah informasi

    Cookie dengan atribut

    GET /sample_page.html HTTP/2.0
    Host: www.example.org
    Cookie: yummy_cookie=choco; tasty_cookie=strawberry
    
    _1 tidak dapat diakses oleh JavaScript
    GET /sample_page.html HTTP/2.0
    Host: www.example.org
    Cookie: yummy_cookie=choco; tasty_cookie=strawberry
    
    8 API; . Misalnya, cookie yang bertahan di sesi sisi server tidak perlu tersedia untuk JavaScript dan harus memiliki atribut
    GET /sample_page.html HTTP/2.0
    Host: www.example.org
    Cookie: yummy_cookie=choco; tasty_cookie=strawberry
    
    1. Tindakan pencegahan ini membantu mengurangi serangan skrip () lintas situs

    Ini sebuah contoh

    Set-Cookie: id=a3fWa; Expires=Thu, 21 Oct 2021 07:28:00 GMT; Secure; HttpOnly
    

    Atribut

    Set-Cookie: id=a3fWa; Expires=Thu, 31 Oct 2021 07:28:00 GMT;
    
    0 dan
    Set-Cookie: id=a3fWa; Expires=Thu, 31 Oct 2021 07:28:00 GMT;
    
    1 menentukan ruang lingkup cookie. ke URL mana cookie harus dikirim

    Atribut domain

    Atribut

    Set-Cookie: id=a3fWa; Expires=Thu, 31 Oct 2021 07:28:00 GMT;
    
    _0 menentukan host mana yang dapat menerima cookie. Jika server tidak menentukan
    Set-Cookie: id=a3fWa; Expires=Thu, 31 Oct 2021 07:28:00 GMT;
    
    0, browser menetapkan default domain ke host yang sama yang menyetel cookie, tidak termasuk subdomain. Jika
    Set-Cookie: id=a3fWa; Expires=Thu, 31 Oct 2021 07:28:00 GMT;
    
    0 ditentukan, maka subdomain selalu disertakan. Oleh karena itu, menentukan
    Set-Cookie: id=a3fWa; Expires=Thu, 31 Oct 2021 07:28:00 GMT;
    
    0 tidak seketat menghilangkannya. Namun, akan sangat membantu jika subdomain perlu berbagi informasi tentang pengguna

    Misalnya, jika Anda menyetel

    Set-Cookie: id=a3fWa; Expires=Thu, 31 Oct 2021 07:28:00 GMT;
    
    _6, cookie tersedia di subdomain seperti
    Set-Cookie: id=a3fWa; Expires=Thu, 31 Oct 2021 07:28:00 GMT;
    
    7

    Atribut jalur

    Atribut

    Set-Cookie: id=a3fWa; Expires=Thu, 31 Oct 2021 07:28:00 GMT;
    
    _1 menunjukkan jalur URL yang harus ada di URL yang diminta untuk mengirimkan header
    HTTP/2.0 200 OK
    Content-Type: text/html
    Set-Cookie: yummy_cookie=choco
    Set-Cookie: tasty_cookie=strawberry
    
    [page content]
    
    0. Karakter
    Set-Cookie: id=a3fWa; Expires=Thu, 21 Oct 2021 07:28:00 GMT; Secure; HttpOnly
    
    _0 ("/") dianggap sebagai pemisah direktori, dan subdirektori juga cocok

    Misalnya, jika Anda menyetel

    Set-Cookie: id=a3fWa; Expires=Thu, 21 Oct 2021 07:28:00 GMT; Secure; HttpOnly
    
    _1, jalur permintaan ini cocok

    • Set-Cookie: id=a3fWa; Expires=Thu, 21 Oct 2021 07:28:00 GMT; Secure; HttpOnly
      
      _2
    • Set-Cookie: id=a3fWa; Expires=Thu, 21 Oct 2021 07:28:00 GMT; Secure; HttpOnly
      
      _3
    • Set-Cookie: id=a3fWa; Expires=Thu, 21 Oct 2021 07:28:00 GMT; Secure; HttpOnly
      
      _4
    • Set-Cookie: id=a3fWa; Expires=Thu, 21 Oct 2021 07:28:00 GMT; Secure; HttpOnly
      
      _5

    Tetapi jalur permintaan ini tidak

    • Set-Cookie: id=a3fWa; Expires=Thu, 21 Oct 2021 07:28:00 GMT; Secure; HttpOnly
      
      _6
    • Set-Cookie: id=a3fWa; Expires=Thu, 21 Oct 2021 07:28:00 GMT; Secure; HttpOnly
      
      _7
    • Set-Cookie: id=a3fWa; Expires=Thu, 21 Oct 2021 07:28:00 GMT; Secure; HttpOnly
      
      _8

    atribut SameSite

    Atribut

    Set-Cookie: id=a3fWa; Expires=Thu, 21 Oct 2021 07:28:00 GMT; Secure; HttpOnly
    
    _9 memungkinkan server menentukan apakah/kapan cookie dikirim dengan permintaan lintas situs (di mana Situs ditentukan oleh domain yang dapat didaftarkan dan skema. http atau https). Ini memberikan beberapa perlindungan terhadap serangan pemalsuan permintaan lintas situs (CSRF). Dibutuhkan tiga nilai yang mungkin.
    Set-Cookie: mykey=myvalue; SameSite=Strict
    
    0,
    Set-Cookie: mykey=myvalue; SameSite=Strict
    
    1, dan
    Set-Cookie: mykey=myvalue; SameSite=Strict
    
    2

    Dengan

    Set-Cookie: mykey=myvalue; SameSite=Strict
    
    _0, browser hanya mengirimkan cookie dengan permintaan dari situs asal cookie.
    Set-Cookie: mykey=myvalue; SameSite=Strict
    
    1 serupa, kecuali browser juga mengirimkan cookie ketika pengguna menavigasi ke situs asal cookie (bahkan jika pengguna berasal dari situs yang berbeda). Misalnya, dengan mengikuti tautan dari situs eksternal.
    Set-Cookie: mykey=myvalue; SameSite=Strict
    
    2 menetapkan bahwa cookie dikirim pada permintaan asal dan lintas situs, tetapi hanya dalam konteks aman (i. e. , jika
    Set-Cookie: mykey=myvalue; SameSite=Strict
    
    6 maka atribut
    GET /sample_page.html HTTP/2.0
    Host: www.example.org
    Cookie: yummy_cookie=choco; tasty_cookie=strawberry
    
    0 juga harus disetel). Jika tidak ada atribut
    Set-Cookie: id=a3fWa; Expires=Thu, 21 Oct 2021 07:28:00 GMT; Secure; HttpOnly
    
    9 yang ditetapkan, cookie akan diperlakukan sebagai
    Set-Cookie: mykey=myvalue; SameSite=Strict
    
    1

    Ini sebuah contoh

    Set-Cookie: mykey=myvalue; SameSite=Strict
    

    Catatan. Standar terkait dengan

    Set-Cookie: id=a3fWa; Expires=Thu, 21 Oct 2021 07:28:00 GMT; Secure; HttpOnly
    
    _9 baru saja diubah (MDN mendokumentasikan perilaku baru di atas). Lihat tabel cookie untuk informasi tentang cara menangani atribut dalam versi browser tertentu

    • document.cookie = "yummy_cookie=choco";
      document.cookie = "tasty_cookie=strawberry";
      console.log(document.cookie);
      // logs "yummy_cookie=choco; tasty_cookie=strawberry"
      
      1 adalah default baru jika
      Set-Cookie: id=a3fWa; Expires=Thu, 21 Oct 2021 07:28:00 GMT; Secure; HttpOnly
      
      9 tidak ditentukan. Sebelumnya, cookie dikirim untuk semua permintaan secara default
    • Cookie dengan
      Set-Cookie: mykey=myvalue; SameSite=Strict
      
      6 sekarang juga harus menentukan atribut
      GET /sample_page.html HTTP/2.0
      Host: www.example.org
      Cookie: yummy_cookie=choco; tasty_cookie=strawberry
      
      0 (memerlukan konteks yang aman)
    • Cookie dari domain yang sama tidak lagi dianggap berasal dari situs yang sama jika dikirim menggunakan skema yang berbeda (
      GET /sample_page.html HTTP/2.0
      Host: www.example.org
      Cookie: yummy_cookie=choco; tasty_cookie=strawberry
      
      3 atau
      document.cookie = "yummy_cookie=choco";
      document.cookie = "tasty_cookie=strawberry";
      console.log(document.cookie);
      // logs "yummy_cookie=choco; tasty_cookie=strawberry"
      
      6)

    Awalan kue

    Karena desain mekanisme cookie, server tidak dapat mengonfirmasi bahwa cookie telah disetel dari sumber yang aman atau bahkan memberi tahu dari mana cookie awalnya disetel.

    Aplikasi yang rentan di subdomain dapat menyetel cookie dengan atribut

    Set-Cookie: id=a3fWa; Expires=Thu, 31 Oct 2021 07:28:00 GMT;
    
    0, yang memberikan akses ke cookie tersebut di semua subdomain lainnya. Mekanisme ini dapat disalahgunakan dalam serangan fiksasi sesi. Lihat untuk metode mitigasi utama

    Namun, sebagai tindakan pertahanan mendalam, Anda dapat menggunakan awalan cookie untuk menegaskan fakta spesifik tentang cookie. Tersedia dua awalan

    document.cookie = "yummy_cookie=choco";
    document.cookie = "tasty_cookie=strawberry";
    console.log(document.cookie);
    // logs "yummy_cookie=choco; tasty_cookie=strawberry"
    
    _8

    Jika nama cookie memiliki awalan ini, itu diterima di header Set-Cookie hanya jika itu juga ditandai dengan atribut

    GET /sample_page.html HTTP/2.0
    Host: www.example.org
    Cookie: yummy_cookie=choco; tasty_cookie=strawberry
    
    0, dikirim dari asal yang aman, tidak menyertakan atribut
    Set-Cookie: id=a3fWa; Expires=Thu, 31 Oct 2021 07:28:00 GMT;
    
    0, dan atribut
    Set-Cookie: id=a3fWa; Expires=Thu, 31 Oct 2021 07:28:00 GMT;
    
    1 disetel ke
    Set-Cookie: id=a3fWa; Expires=Thu, 21 Oct 2021 07:28:00 GMT; Secure; HttpOnly
    
    6. Dengan cara ini, cookie ini dapat dilihat sebagai "domain-locked"

    localStorage_4

    Jika nama cookie memiliki awalan ini, itu diterima di header Set-Cookie hanya jika ditandai dengan atribut

    GET /sample_page.html HTTP/2.0
    Host: www.example.org
    Cookie: yummy_cookie=choco; tasty_cookie=strawberry
    
    0 dan dikirim dari asal yang aman. Ini lebih lemah dari
    document.cookie = "yummy_cookie=choco";
    document.cookie = "tasty_cookie=strawberry";
    console.log(document.cookie);
    // logs "yummy_cookie=choco; tasty_cookie=strawberry"
    
    _8 awalan

    Peramban akan menolak cookie dengan awalan ini yang tidak sesuai dengan batasannya. Perhatikan bahwa ini memastikan bahwa cookie yang dibuat oleh subdomain dengan awalan terbatas pada subdomain atau diabaikan sepenuhnya. Karena server aplikasi hanya memeriksa nama cookie tertentu saat menentukan apakah pengguna diautentikasi atau token CSRF sudah benar, ini secara efektif bertindak sebagai tindakan pertahanan terhadap fiksasi sesi

    Catatan. Di server aplikasi, aplikasi web harus memeriksa nama cookie lengkap termasuk awalannya. Agen pengguna tidak menghapus awalan dari cookie sebelum mengirimkannya dalam header

    HTTP/2.0 200 OK
    Content-Type: text/html
    Set-Cookie: yummy_cookie=choco
    Set-Cookie: tasty_cookie=strawberry
    
    [page content]
    
    0 permintaan

    Untuk informasi selengkapnya tentang awalan cookie dan status dukungan browser saat ini, lihat

    Akses JavaScript menggunakan Dokumen. Kue kering

    Anda dapat membuat cookie baru melalui JavaScript menggunakan properti

    GET /sample_page.html HTTP/2.0
    Host: www.example.org
    Cookie: yummy_cookie=choco; tasty_cookie=strawberry
    
    8. Anda juga dapat mengakses cookie yang ada dari JavaScript jika flag
    GET /sample_page.html HTTP/2.0
    Host: www.example.org
    Cookie: yummy_cookie=choco; tasty_cookie=strawberry
    
    1 tidak disetel

    document.cookie = "yummy_cookie=choco";
    document.cookie = "tasty_cookie=strawberry";
    console.log(document.cookie);
    // logs "yummy_cookie=choco; tasty_cookie=strawberry"
    

    Cookie yang dibuat melalui JavaScript tidak dapat menyertakan bendera

    GET /sample_page.html HTTP/2.0
    Host: www.example.org
    Cookie: yummy_cookie=choco; tasty_cookie=strawberry
    
    1

    Harap perhatikan masalah keamanan di bagian di bawah ini. Cookie yang tersedia untuk JavaScript dapat dicuri melalui XSS

    Catatan. Saat Anda menyimpan informasi dalam cookie, ingatlah bahwa semua nilai cookie dapat dilihat, dan dapat diubah oleh, pengguna akhir. Bergantung pada aplikasinya, Anda mungkin ingin menggunakan pengenal buram yang dicari server, atau menyelidiki mekanisme autentikasi/kerahasiaan alternatif seperti Token Web JSON

    Cara untuk mengurangi serangan yang melibatkan cookie

    • Gunakan atribut
      GET /sample_page.html HTTP/2.0
      Host: www.example.org
      Cookie: yummy_cookie=choco; tasty_cookie=strawberry
      
      _1 untuk mencegah akses ke nilai cookie melalui JavaScript
    • Cookie yang digunakan untuk informasi sensitif (seperti menunjukkan autentikasi) harus berumur pendek, dengan atribut
      Set-Cookie: id=a3fWa; Expires=Thu, 21 Oct 2021 07:28:00 GMT; Secure; HttpOnly
      
      9 disetel ke
      Set-Cookie: mykey=myvalue; SameSite=Strict
      
      0 atau
      Set-Cookie: mykey=myvalue; SameSite=Strict
      
      1. (Lihat di atas. ) Dalam , ini memastikan bahwa cookie autentikasi tidak dikirim dengan permintaan lintas situs. Ini akan membuat permintaan tidak diautentikasi secara efektif ke server aplikasi

    Cookie dikaitkan dengan domain dan skema tertentu (seperti sessionStorage6 atau sessionStorage7), dan juga dapat dikaitkan dengan subdomain jika atribut Set-Cookie

    Set-Cookie: id=a3fWa; Expires=Thu, 31 Oct 2021 07:28:00 GMT;
    
    0 ditetapkan. Jika domain dan skema cookie cocok dengan halaman saat ini, cookie tersebut dianggap berasal dari situs yang sama dengan halaman tersebut, dan disebut sebagai cookie pihak pertama

    Jika domain dan skemanya berbeda, cookie tidak dianggap berasal dari situs yang sama, dan disebut sebagai cookie pihak ketiga. Meskipun server yang menghosting halaman web menyetel cookie pihak pertama, halaman tersebut mungkin berisi gambar atau komponen lain yang disimpan di server di domain lain (misalnya, spanduk iklan) yang dapat menyetel cookie pihak ketiga. Ini terutama digunakan untuk periklanan dan pelacakan di seluruh web. Misalnya jenis cookie yang digunakan oleh Google

    Server pihak ketiga dapat membuat profil riwayat penelusuran dan kebiasaan pengguna berdasarkan cookie yang dikirimkan kepadanya oleh browser yang sama saat mengakses beberapa situs. Firefox, secara default, memblokir cookie pihak ketiga yang diketahui berisi pelacak. Cookie pihak ketiga (atau hanya cookie pelacak) juga dapat diblokir oleh pengaturan atau ekstensi browser lain. Pemblokiran cookie dapat menyebabkan beberapa komponen pihak ketiga (seperti widget media sosial) tidak berfungsi sebagaimana mestinya

    Catatan. Server dapat (dan harus) menyetel atribut cookie SameSite untuk menentukan apakah cookie dapat dikirim ke situs pihak ketiga atau tidak

    Perundang-undangan atau peraturan yang mencakup penggunaan cookie termasuk

    • Peraturan Privasi Data Umum (GDPR) di Uni Eropa
    • Pedoman ePrivasi di UE
    • Undang-Undang Privasi Konsumen California

    Peraturan ini memiliki jangkauan global. Aturan tersebut berlaku untuk situs mana pun di World Wide Web yang diakses oleh pengguna dari yurisdiksi ini (Uni Eropa dan California, dengan peringatan bahwa undang-undang California hanya berlaku untuk entitas dengan pendapatan kotor lebih dari 25 juta USD, antara lain)

    Peraturan ini mencakup persyaratan seperti

    • Memberi tahu pengguna bahwa situs Anda menggunakan cookie
    • Mengizinkan pengguna memilih untuk tidak menerima beberapa atau semua cookie
    • Mengizinkan pengguna menggunakan sebagian besar layanan Anda tanpa menerima cookie

    Mungkin ada peraturan lain yang mengatur penggunaan cookie di wilayah Anda. Beban Anda untuk mengetahui dan mematuhi peraturan ini. Ada perusahaan yang menawarkan kode "banner cookie" yang membantu Anda mematuhi peraturan ini

    Pendekatan lain untuk menyimpan data di browser adalah Web Storage API. Jendela. sessionStorage dan jendela. properti localStorage sesuai dengan durasi sesi dan cookie permanen, tetapi memiliki batas penyimpanan yang lebih besar daripada cookie, dan tidak pernah dikirim ke server. Jumlah data yang lebih terstruktur dan lebih besar dapat disimpan menggunakan IndexedDB API, atau pustaka yang dibangun di atasnya

    Ada beberapa teknik yang dirancang untuk membuat ulang cookie setelah dihapus. Ini dikenal sebagai cookie "zombie". Teknik ini melanggar prinsip privasi pengguna dan kontrol pengguna, dapat melanggar peraturan privasi data, dan dapat membuat situs web yang menggunakannya terkena tanggung jawab hukum

    Cookie sering digunakan untuk mengidentifikasi pengguna. Cookie adalah file kecil yang disematkan server di komputer pengguna . Setiap kali komputer yang sama meminta halaman dengan browser, itu juga akan mengirimkan cookie. Dengan PHP, Anda dapat membuat dan mengambil nilai cookie.
    Cookie HTTP, atau cookie internet, dibuat khusus untuk browser web Internet untuk melacak, mempersonalisasi, dan menyimpan informasi tentang setiap sesi pengguna . Sebuah "sesi" hanya mengacu pada waktu yang Anda habiskan di sebuah situs. Cookie dibuat untuk mengidentifikasi Anda saat Anda mengunjungi situs web baru.
    Dalam PHP ID sesi dibuat yaitu nilai internal untuk mengidentifikasi sesi. Array sesi disimpan di server sedangkan cookie disimpan di klien . Sesi ditangani dalam PHP menggunakan fungsi session_start() yang tidak memerlukan parameter.
    Sesi PHP . Pada setiap permintaan di masa mendatang, browser akan mengirimkan ID sesi sebagai cookie dan server akan menemukan sesi yang sesuai untuk mengizinkan akses ke data pengguna yang tersimpan. Dalam PHP, penting untuk selalu menginisialisasi sesi menggunakan session_start() .