deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak dev.to (home feed)

Oturum cookie'leri geçici parola gibi davranır, dev.to güvenlik rehberi açıklıyor

dev.to'da yayımlanan bir rehber, girişten sonra her isteği doğrulayan şeyin parola değil oturum cookie'si olduğunu savunuyor ve HttpOnly, Secure ile tahmin edilemez kimliklerin onu nasıl koruduğunu gösteriyor.

Oturum cookie'leri geçici parola gibi davranır, dev.to güvenlik rehberi açıklıyor

dev.to'da yazan bir geliştirici, web'in en tanıdık yapı taşlarından birini yeniden çerçeveleyen pratik bir güvenlik rehberinin ilk bölümünü yayımladı: oturum cookie'si. Temel argüman şu: Kullanıcı bir kez giriş yaptıktan sonra parola genellikle tamamen devre dışı kalır ve tarayıcıda saklanan oturum kimliği, ondan sonraki her isteği aslında doğrulayan şeydir. Yazar, uygulamada bu kimliğin bir parola kadar özen hak ettiğini yazıyor; çünkü süreleri dolana ya da geçersiz kılınana kadar bir parola gibi işlev görür.

Oturumlar kimlik doğrulamayı nasıl taşır

Yazı, HTTP'nin durum bilgisi olmayan (stateless) doğasıyla açılıyor: Aynı host'a yapılan iki istek kendi başlarına ilgisizdir; dolayısıyla sunucunun, panele erişen ziyaretçinin dakikalar önce kimlik doğrulaması yapan kişi olduğunu tanıması için bir mekanizmaya ihtiyacı vardır. Geleneksel bir sunucu tarafı kurulumunda akış, kimlik bilgisi kontrolünden sunucuda tutulan oturum durumunun oluşturulmasına, üretilen bir oturum kimliğine ve bu kimliği tarayıcıya ileten bir Set-Cookie başlığına kadar uzanır. O andan itibaren tarayıcı cookie'yi her istekle otomatik olarak sunar ve sunucu ilgili kaydı arar — bu kayıtta genellikle kullanıcı kimliği, rol ve bir doğrulanmış bayrağı bulunur. Parola bir daha asla iletilmez.

Cookie ve oturum farklı şeylerdir

Yazar, sıklıkla birbirine karıştırılan iki terimi dikkatle ayırıyor. Cookie, tarayıcı tarafındaki bir depolama alanıdır; eşleşen isteklere eklenen bir veri parçasıdır. Oturum ise sunucuda tutulan uygulama durumudur. Oturum kimliği ikisi arasındaki bağdır ve değerli olmasının nedeni de tam olarak budur: gelen bir isteği doğrulanmış bir hesaba bağlayan tek şeydir.

Elde etmek yeterlidir

dev.to yazısına göre, oturum kimliğini ele geçiren bir saldırgan onu kendi isteğinde yeniden kullanabilir. Sunucu canlı bir doğrulanmış oturum görürse istek meşru görünür ve saldırganın kurbanın parolasına hiç ihtiyacı olmaz. Bu taşıyıcı (bearer) özelliği, geçici parola benzetmesini isabetli kılan şeydir.

Tahmin edilemezlik temeldir

Tahmin edilebilir kimlikler — ardışık numaralar ya da bir kullanıcı adı ve zaman damgasından oluşturulan değerler — kötü tasarımlar olarak nitelendiriliyor; yazar, eşsizliğin güvenlikle aynı şey olmadığına dikkat çekiyor. Öneri, kriptografik olarak güvenli bir rastgele üretici kullanmak ve Node.js'de crypto.randomBytes(32) ile hex biçiminde göstermek. Önemli olan şey, yazının altını çizdiği gibi, değerin karmaşık görünmesi değil; bir saldırganın sıradaki geçerli değeri gerçekçi bir şekilde tahmin edememesidir.

HttpOnly yardımcı olur ama XSS'i onarmaz

JavaScript document.cookie'yi okuyabildiği için bir cross-site scripting açığı doğrudan cookie hırsızlığına dönüşebilir. HttpOnly bayrağının ayarlanması, betiklerin cookie'yi okumasını engellerken normal isteklerle taşınmasına izin vermeye devam eder. Yazar sınırlılık konusunda açık: Kurbanın tarayıcısında kötü niyetli JavaScript zaten çalışıyorsa, saldırgan doğrulanmış eylemleri yine gerçekleştirebilir — verilen örnek, bir fetch çağrısıyla hesabın e-posta adresini değiştiriyor — çünkü tarayıcı cookie'yi otomatik olarak ekler. Cookie'yi korumak ve XSS'i ortadan kaldırmak ayrı sorunlardır, diye sonuçlanıyor yazı.

Secure, ardından SameSite gelecek

Secure özniteliği cookie'yi HTTPS bağlantılarıyla sınırlar ve yazı, her biri farklı bir tehdide karşı geldiği için HttpOnly ile birlikte kullanılmasını öneriyor. Bölüm 1 olarak etiketlenen makale, tam SameSite özniteliğine geçerken sona eriyor; bu da cross-site istek risklerinin bir devam bölümünü beklediğine işaret ediyor.

Neden önemli

Giriş formunu sağlamlaştırmak — güçlü parolalar, doğru hash'leme, MFA, hız sınırlama — parolanın yerini alan token sızarsa giriş sonrasındaki dönem için hiçbir şey yapmaz. Çalınan oturum cookie'leri hesaplara giden ucuz ve yaygın bir yol olmasının nedeni tam olarak budur; çünkü oturum yönetimi, kimlik doğrulamadan çok daha az ilgi görür. Burada tarif edilen çözümler düşük maliyetli ve iyi köklüdür: kimlikleri güvenli bir rastgele kaynakla üretin, doğrulama cookie'lerini HttpOnly ve Secure olarak işaretleyin ve tarayıcıda saklanan cookie'ye, gerçekten olduğu gibi canlı bir kimlik bilgisi olarak davranın.

  • #security
  • #cookies
  • #authentication
  • #web-development
  • #session-management

İlgili yazılar