İçeriğe atla
FerdiGidenby FerdiSoftBETA v2.4
Güvenlik

Çerez Güvenliği: HttpOnly, Secure ve SameSite

Güvenlik üzerinde çalışırken Çerez Güvenliği: HttpOnly, Secure ve SameSite konusunu doğru kavramak hem zaman kazandırır hem de ileride çıkabilecek sorunların önüne geçer. Aşağıda konunun özünü 5 başlık altında topladık.

Ferdi GidenFerdi Giden 2 dk okuma 4
Çerez Güvenliği: HttpOnly, Secure ve SameSite
İçindekiler
  1. Temel kavram ve amaç
  2. Kritik noktalar
  3. PHP ile uygulama
  4. Avantajları
  5. Sonuç

Güvenlik üzerinde çalışırken Çerez Güvenliği: HttpOnly, Secure ve SameSite konusunu doğru kavramak hem zaman kazandırır hem de ileride çıkabilecek sorunların önüne geçer. Aşağıda konunun özünü 5 başlık altında topladık.

Temel kavram ve amaç

Oturum çerezi, kullanıcının kimliğinin ta kendisidir; onu ele geçiren kişi şifre bilmeden hesaba girer. Çerezin hangi koşullarda gönderileceğini ve JavaScript'ten okunup okunamayacağını belirleyen üç bayrak, XSS ve CSRF saldırılarının etkisini büyük ölçüde azaltır.

Kritik noktalar

  • HttpOnly: Çerez JavaScript'ten okunamaz; sitede bir XSS açığı olsa bile oturum çerezi çalınamaz.
  • Secure: Çerez yalnızca HTTPS bağlantısında gönderilir; açık Wi-Fi ağlarında dinlenerek ele geçirilmesi önlenir.
  • SameSite=Lax: Başka bir siteden gönderilen formlarda çerez eklenmez; CSRF saldırılarına karşı ek bir katman oluşturur.
  • Strict ve None: Strict, başka siteden gelen bağlantı tıklamalarında bile çerezi göndermez; None ise mutlaka Secure ile birlikte kullanılmalıdır.
  • __Host- öneki: Adı __Host- ile başlayan çerez yalnız Secure, path=/ ve alan adı belirtilmeden ayarlanabilir; alt alan adlarından ezilemez.

PHP ile uygulama

Aşağıdaki PHP örneği, yukarıdaki noktaların gerçek bir kodda nasıl bir araya geldiğini gösteriyor:

// Oturum çerezi: session_start() çağrısından önce ayarlanır
session_set_cookie_params([
    'lifetime' => 0,          // tarayıcı kapanınca silinir
    'path'     => '/',
    'secure'   => true,       // yalnız HTTPS üzerinden gönderilir
    'httponly' => true,       // document.cookie ile okunamaz
    'samesite' => 'Lax',      // başka siteden gelen POST isteklerine eklenmez
]);
ini_set('session.use_strict_mode', '1');
session_start();

// Kendi çerezleriniz için de aynı seçenekler
setcookie('tema', 'koyu', [
    'expires'  => time() + 60 * 60 * 24 * 365,
    'path'     => '/',
    'secure'   => true,
    'httponly' => false,      // JavaScript bu çerezi okuyacaksa
    'samesite' => 'Lax',
]);

Kodu doğrudan kopyalamak yerine her satırın ne yaptığını anlayarak uyarlamanız, ileride çıkacak hataları çözmeyi kolaylaştırır.

Kullanıcıdan gelen veriyi ekrana basarken htmlspecialchars() ile kaçışlamak XSS saldırılarının önüne geçer.

Avantajları

Bu yaklaşımı benimsediğinizde elde edeceğiniz başlıca faydalar:

  • Saldırı yüzeyini daraltır ve olası veri sızıntılarının önüne geçer
  • Güvenlik denetimlerinden daha kolay geçen bir kod tabanı sağlar
  • Hataların canlı ortama çıkmadan fark edilmesine yardım eder
  • Kullanıcı güvenini ve marka itibarını korur

Sonuç

Çerez Güvenliği: HttpOnly, Secure ve SameSite, küçük ama düzenli adımlarla ustalaşılan konulardan biri. Özellikle HttpOnly ve __Host- öneki başlıklarını uygulamaya geçirmek iyi bir başlangıç olur.

İlgili içerikler:

Daha fazla uygulamalı içerik için Akademi derslerine ve blog yazılarına göz atabilirsiniz.

Paylaş:
Ferdi Giden

Yazar

Ferdi Giden @admin
Sistem YöneticisiDoğrulanmış GeliştiriciBeta KullanıcıFerdiSoft KatılımcısıDoğrulanmış ProfilGüvenlik Bilinci

PHP, MySQL ve Tailwind ile kurumsal yazılımlar geliştiriyor; FerdiSoft çatısı altında ERP, WMS ve SaaS çözümleri üretiyor.

Yorumlar 0

Yorum yapmak ve tartışmaya katılmak için giriş yapın. Rozetleriniz yorumlarınızda görünür.

Henüz yorum yok. İlk yorumu siz yazın!

Ücretsiz Teklif Al