Php 8 Cookie Nedir?

Php 8 Cookie Nedir?

PHP 8 Cookie Nedir?

Cookie (çerez), bir web sitesinin kullanıcıya ait küçük miktarlarda veri depoladığı ve bu verilerin kullanıcı tarayıcısında saklandığı bir mekanizmadır. PHP'de cookie kullanarak, bir web sayfası kullanıcı hakkında bazı bilgileri tarayıcıya kaydedebilir ve daha sonraki ziyaretlerde bu bilgileri tekrar alabilir.

PHP'de çerezler, kullanıcının tarayıcısına gönderilen küçük dosyalar olarak tanımlanır. Örneğin, bir kullanıcının siteye giriş yapıp yapmadığını veya sepetindeki ürünleri hatırlamak için çerezler kullanılabilir.

1. PHP'de Cookie Nasıl Oluşturulur?

PHP'de çerez oluşturmak için setcookie() fonksiyonu kullanılır. Çerez, kullanıcının tarayıcısında oluşturulur ve belirli bir süre boyunca depolanır.

Temel Kullanım:

<?php // Bir çerez oluştur setcookie('kullanici_adi', 'Ahmet', time() + 3600); // 1 saat geçerli ?>

Bu kod, tarayıcıya "kullanici_adi" adında bir çerez gönderir ve bu çereze "Ahmet" değerini atar. Çerezin süresi time() + 3600 ile 1 saat (3600 saniye) olarak ayarlanmıştır.

Açıklama:

  • setcookie() : Çerez oluşturmak için kullanılan PHP fonksiyonudur.
    • İlk parametre: Çerezin adı (örneğin, kullanici_adi).
    • İkinci parametre: Çerezin değeri (örneğin, Ahmet).
    • Üçüncü parametre: Çerezin geçerlilik süresi (şu anki zamana eklenen saniye cinsinden zaman).

2. PHP'de Cookie Nasıl Okunur?

Bir kez ayarlandığında, çerezler sayfalar arasında kalıcı olur ve kullanıcı çerez süresi boyunca sitenizi ziyaret ettiğinde kullanılabilir. PHP'de çerezlere $_COOKIE süper global dizisiyle erişilebilir.

Örnek:

<?php if (isset($_COOKIE['kullanici_adi'])) { echo "Kullanıcı adı: " . $_COOKIE['kullanici_adi']; } else { echo "Kullanıcı adı bulunamadı."; } ?>

Bu kod, kullanici_adi çerezinin var olup olmadığını kontrol eder ve varsa değerini ekrana yazar. Eğer çerez bulunamazsa bir hata mesajı gösterilir.

3. PHP'de Cookie Nasıl Silinir?

Bir çerezi silmek için aynı çerez ismi ile geçerlilik süresi geçmiş bir zaman verilmelidir. Çerezin süresi dolduğunda tarayıcı bu çerezi otomatik olarak siler.

Örnek:

<?php // Çerezi silmek için geçerlilik süresini geçmiş bir zamana ayarlayın setcookie('kullanici_adi', '', time() - 3600); // 1 saat önce ?>

Bu kod, kullanici_adi çerezini siler. Geçmiş bir zamana (time() - 3600) ayarlandığı için tarayıcı çerezi kaldırır.

4. Çerez Ayarları ve Seçenekleri

setcookie() fonksiyonu daha fazla parametre kabul edebilir, bu parametreler çerezin güvenliği, alan adı, erişim yolu ve HTTPS ile ilgili ayarlarını yapılandırmanıza olanak tanır.

setcookie( "kullanici_adi", // Çerez adı "Ahmet", // Çerez değeri time() + 3600, // Çerezin geçerlilik süresi "/", // Çerezin kullanılabileceği yol ("/" tüm site demek) "example.com", // Çerezin geçerli olduğu alan adı (domain) true, // Sadece HTTPS bağlantıları üzerinden gönderilsin mi? true // HttpOnly, çerezler JavaScript tarafından erişilemez olur );

Ek Parametreler:

  • Path ("/"): Çerezin hangi yollar altında geçerli olacağını belirtir. / değeri, çerezin tüm site boyunca geçerli olacağını belirtir.
  • Domain ("example.com"): Çerezin geçerli olduğu alan adını belirtir.
  • Secure (true/false): true olarak ayarlanırsa, çerez yalnızca HTTPS bağlantıları üzerinden iletilir.
  • HttpOnly (true/false): true olarak ayarlanırsa, çerez JavaScript üzerinden erişilemez hale gelir. Bu, çerez hırsızlığına karşı güvenlik sağlar.

5. Cookie Güvenliği

Çerezlerin güvenliği son derece önemlidir, çünkü oturum bilgilerinin çerezler aracılığıyla yönetildiği durumlarda güvenlik açıkları oluşabilir. İşte bazı önemli güvenlik önlemleri:

  • HttpOnly Bayrağı: Çerezlere JavaScript üzerinden erişimi engeller. Bu, XSS (Cross-Site Scripting) saldırılarına karşı koruma sağlar.
  • Secure Bayrağı: Çerezlerin yalnızca HTTPS bağlantıları üzerinden gönderilmesini sağlar. Bu, çerezlerin güvenli olmayan HTTP bağlantıları üzerinden iletilmesini önler.
  • Ağ Saldırılarına Karşı Koruma: Çerezler, güvenli olmayan ağ bağlantıları üzerinden çalınabilir. Bu nedenle, güvenli bayrakları kullanmak ve çerezlerin yalnızca HTTPS ile gönderilmesini sağlamak önemlidir.

6. PHP 8 ile Yeni Cookie İşlevi: setcookie() ve setrawcookie()

PHP 7.3'ten itibaren, cookie ayarlamak için daha gelişmiş ve esnek seçenekler sunan bir yapı eklendi. Bu, setcookie() fonksiyonuna dizi olarak ayar parametreleri göndermenize olanak tanır.

setcookie('kullanici_adi', 'Ahmet', [ 'expires' => time() + 3600, 'path' => '/', 'domain' => 'example.com', 'secure' => true, 'httponly' => true, 'samesite' => 'Strict' // SameSite özelliği eklenmiştir ]);
  • SameSite: Çerezlerin siteler arası isteklerde gönderilip gönderilmeyeceğini belirler. Strict, Lax, veya None olabilir.

Sonuç:

PHP'de çerezler, kullanıcının tarayıcısında bilgi saklamak için güçlü ve yaygın bir mekanizmadır. Bu mekanizma, oturum yönetimi, kullanıcı tercihleri ve diğer küçük veri parçalarını depolamak için kullanılır. Çerezleri kullanırken güvenliğe dikkat etmek ve doğru yapılandırmaları kullanmak, saldırılara karşı koruma sağlar.



Yorum Ekle

Üzerine gel