Çerezler ve oturumlar arasındaki farklar?


154

Web geliştirme eğitimi alıyorum ve JSP ve Servlet'leri öğreniyorum . Bazı bilgilerim HttpSessionvar - bazı örnek projelerimde kullandım.

Tarayıcılarda "çerezleri silme" seçeneğini gördüm. Çerezleri silersem de siler HttpSession.

Çerezler ve oturum aynı mıdır? Aralarındaki farklar nelerdir?


Ayrıca şu soruya bakın: < stackoverflow.com/questions/356562/… > Özellikle imzalı çerezlerle ilgili açıklamalar.
Joel Coehoorn

Sanırım bu soruya ikinci cevap daha uygun, Eğer en iyi cevap olarak seçerseniz, birçok kişi bunu okuyacaktır.
Suraj Jain

Yanıtlar:


180

Oturumlar, kullanıcı bilgilerini içeren sunucu tarafı dosyaları, Çerezler ise kullanıcı bilgilerini içeren istemci tarafı dosyalarıdır. Oturumlar, onları belirli kullanıcılarla eşleyen benzersiz bir tanımlayıcıya sahiptir. Bu tanımlayıcı URL'ye geçirilebilir veya bir oturum çerezine kaydedilebilir.

Modern sitelerin çoğu ikinci yaklaşımı kullanır ve tanımlayıcıyı URL'ye geçirmek yerine bir Tanımlama Bilgisi'ne kaydeder (güvenlik riski oluşturur). Muhtemelen bu yaklaşımı bilmeden kullanıyorsunuz ve çerezleri silerek, çerezlerde bulunan benzersiz oturum tanımlayıcısını kaldırırken eşleşen oturumlarını etkili bir şekilde silmiş olursunuz.


10
" URL'ye geçirme (güvenlik riski oluşturan). " aslında her iki yaklaşımın da güvenlik riskleri vardır (farklı olanlar). URL'de gizli kimlik doğru şekilde yapılırsa ve kullanıcı URL'nin gizli olduğunu ve herkese açık bir forumda yayınlanamayacağını anlarsa güvenli hale getirilebilir.
curiousguy

1
"Tanımlayıcı URL'ye geçirilebilir veya bir oturum çerezine kaydedilebilir." . Nerede? istemci veya sunucu tarafı? daha fazla açıkladığınız için teşekkür ederim.
Adib Aroui

4
@whitelettersandblankspaces Oturum çerezi istemcide depolanır (ve değeri, tarayıcı oturumunu sunucudaki kullanıcı oturumuyla eşleştirmek için her istekle gönderilen benzersiz oturum tanımlayıcısını içerir).
WynandB

306

Çerez, istemci ve sunucu arasında ileri geri gönderilen kısa bir metin dizesidir. name=bob; password=asdfasBir çerezde saklayabilir ve istemciyi sunucu tarafında tanımlamak için bunu ileri geri gönderebilirsiniz. Bunu kısa vadeli hafızası olmayan ve her işlem için kendinizi tanımlamanızı isteyen bir banka memuru ile değişim yapmak olarak düşünebilirsiniz. Tabii bu tür bilgileri saklamak için bir çerez kullanmak korkunç güvensizdir. Çerezlerin boyutu da sınırlıdır.

Şimdi, banka memuru hafıza problemini bildiğinde, bilgilerinizi bir kağıda yazabilir ve size kısa bir kimlik numarası atayabilir. Ardından, her işlem için hesap numaranızı ve ehliyetinizi vermek yerine, "Ben müşteri 12'im" diyebilirsiniz.

Bunu Web Sunucularına çevirme: Sunucu, ilgili bilgiyi oturum nesnesine depolar ve istemciye bir tanımlama bilgisinde geri göndereceği bir oturum kimliği oluşturur. İstemci çerezi geri gönderdiğinde, sunucu kimliği kullanarak oturum nesnesini arayabilir. Bu nedenle, çerezi silerseniz oturum kaybedilir.

Diğer bir alternatif de sunucunun oturum kimliğini değiştirmek için URL yeniden yazmayı kullanmasıdır.

Bir bağlantınız olduğunu varsayalım - Sayfada www.myserver.com/myApp.jsp gezinebilir ve her URL'yi www.myserver.com/myApp.jsp?sessionID=asdfveya hatta yeniden yazabilir www.myserver.com/asdf/myApp.jspve tanımlayıcıyı bu şekilde değiştirebilirsiniz. Bu teknik, web uygulama kapsayıcısı tarafından işlenir ve genellikle yapılandırmayı çerezsiz oturumlar kullanacak şekilde ayarlayarak açılır.


29
Bu, büyük bir gerçek dünya benzetmesine bağlanmış harika bir açıklamadır. Bu cevap çok daha ileriye götürülmelidir. Böyle bir soru sorma olasılığı en yüksek olan yeni başlayanlar için çok erişilebilir.
user798719

2
Bir kullanıcıysam ve başka biri oturum kimliğimi öğrenirse ne olur?
Maria Ines Parnisari

3
@ I19 Muhtemelen, sizi taklit edebilirler. Bu, çevrimiçi kumar senaryolarında gerçekleşti - Otel wifi'sini koklayın, bir oturum kimliği çalın ve hesaba erişin. Bir oturumu güvence altına almak tamamen başka bir hikaye.
Chris Cudmore

2
Peki ilk olarak kurabiyeyi kim yaratır? Sunucu mu, istemci mi? Yoksa bu uygulamaya mı bağlı? (Aksi takdirde güvenlik tehditleri ortaya
çıkardığı için

4
@nha Sunucu oturumu oluşturur ve bunu çereze yanıt olarak iletir. Oturum, oluşturulmasını istediğinizde uygulama mantığına bağlı olarak oluşturulur. İstemci bir çerez de oluşturabilir, ancak sunucu oturumda değerin neyi temsil ettiğini bilmeyebileceğinden, oturumu tanımlama senaryosunda çok işe yaramayabilir.
Azeem

4

Çerezler ve oturum hem kullanıcı hakkındaki bilgileri depolar (HTTP isteğini durumlu hale getirmek için), ancak fark, çerezlerin istemci tarafında (tarayıcı) bilgi depolaması ve oturumların sunucu tarafında bilgi depolamasıdır. Çerez, sınırlı kullanıcılar hakkında bilgi depolaması ve her kullanıcı için yalnızca sınırlı içerik depolaması bakımından sınırlıdır. Bir oturum bu şekilde sınırlandırılmaz.



1

Çerez temel olarak web tarayıcılarından erişilen global bir dizidir. Birçok kez değer göndermek / almak için kullanılır. formlar arasındaki değerlere erişmek için bir depolama mekanizması görevi görür. Çerezler tarayıcı tarafından, oturuma kıyasla kullanımlarına bir kısıtlama ekleyerek devre dışı bırakılabilir.

Oturum, oturum açmak ve oturum kapatmak arasında bir şey olarak tanımlanabilir. kullanıcının oturum açması ile oturumu kapatması arasındaki süre bir oturumdur. Oturum, değerleri yalnızca oturum süresi için, yani oturumu kapatmadan önce saklar. Oturumlar, oturum açtıktan sonra kullanıcının etkinliklerini izlemek için kullanılır.


0

Google JSESSIONID . Bu, Servlet API'sının başlangıçta URL yeniden yazmayı nasıl kullandığını ve ardından çerezler etkinleştirilirse, oturumları yönetmek için çerezleri açıklar.

HTTP vatansızdır, bu nedenle istemci tarayıcısı oturumun kimliğini her istekle birlikte sunucuya göndermelidir. Sunucu, ne anlama gelirse gelsin, bu kimliği o oturum için herhangi bir veriyi almak üzere, isteğin ömrü boyunca kullanılabilir kılar.


0

Asp.net oturumu:

1. Tüm uygulama genelinde verileri korur.

2.Geçerli oturum canlıysa, verileri izler. Birden fazla denetleyici acitons ve görünümlerinden erişilebilmesi için bazı verilere ihtiyacımız varsa, oturum verileri depolamanın ve almanın yoludur.

Oturumlar, kullanıcı bilgilerini içeren sunucu tarafı dosyalarıdır. [Oturumlar, onları belirli kullanıcılarla eşleyen benzersiz tanımlayıcıdır]

Bunu Web Sunucularına çevirme: Sunucu, ilgili bilgiyi oturum nesnesine depolar ve istemciye bir tanımlama bilgisinde geri göndereceği bir oturum kimliği oluşturur. İstemci çerezi geri gönderdiğinde, sunucu kimliği kullanarak oturum nesnesini arayabilir. Bu nedenle, çerezi silerseniz oturum kaybedilir.


0

Çerez, istemci ve sunucu arasındaki oturumu uygulamanın bir yoludur, bu şekilde çerezde depolanan oturum bilgileri. Ancak bu, oturum bilgisini tutmanın tek yolu değildir, başka bir yol da oturum bilgisini Url'de saklamaktır.


0

Kurabiye tarayıcıda bir metin dosyası formatı olarak saklanır . Sınırlı miktarda veri saklanır. Sadece 4kb [4096bytes] 'e izin verir . $ _ COOKIE değişkeni aynı ada sahip birden fazla çerez tutmaz

çerez değerlerine kolayca erişebiliriz.Bu yüzden daha az güvenlidir . setcookie () işlevi,

<html> 

etiket.

Oturumlar sunucu tarafında saklanır. Sınırsız miktarda veri depolanır ve oturumlarda çoklu değişkeni tutar. çerez değerlerine kolayca erişemiyoruz, bu yüzden daha güvenli .

Bağlantılar: çerezler ve oturumlar arasındaki fark


Aslında, çerezlerde birden fazla veri tutabilirsiniz. Ayrıca, oturumlar gerçekten sınırsız miktarda veri tutamaz. Sahip olduğunuz RAM miktarı ile hemen hemen sınırlısınız.
Koray Tugay
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.