Çerezlere izin maksimum sayısı

6 Cevap php

Bildiğim kadarıyla Google aramaları söyle gibi, çerezleri izin verilen maksimum sayı, tarayıcıda çok bağlıdır, ancak ben kurabiye, modern tarayıcılar üzerinde izin verilir ne kadar olarak herhangi yeni veri bulamıyor.

(Değil-henüz-kayıtlı kullanıcılar için) kurabiye kullanıcı tercihleri ​​biraz sayıda saklamak gerekir, bu yüzden ne yapmanın en iyi yolu olurdu? (Ayrıca, bu tanımlama javascript istemci tarafı ve php sunucu tarafında yoluyla hem de erişilebilir olacak)

6 Cevap

Kimden rfc:

  • en az 300 çerezler

  • at least 4096 bytes per cookie (as measured by the size of the characters that comprise the cookie non-terminal in the syntax description of the Set-Cookie header)

  • eşsiz ev sahibi veya etki alanı adının başına en az 20 kurabiye

Bunlar minimum gereksinimleri vardır. IE6 ekibi bu alamadım. Her şey son derece tarayıcı özeldir. Sen daha iyi her tarayıcı test etmek için bir test platformu yazardım. Küçük artımlı adımlarla maksimum boyutunu ve dizi test (ve hala okunabilir olup olmadığını kontrol edin).

Ayrıca, ben apache kurabiye huges numaraları ile bir sorunu var hatırlıyorum görünüyor. Bunu Gerçi gördüm nerede hatırlayamıyorum.

Here is a little cookie-testing script: http://krijnhoetmer.nl/stuff/javascript/maximum-cookies/

En iyi yolu, hiç bir çerez saklayabilirsiniz değil olacaktır.

Bir veritabanında depolamak ve çerez DB anahtarı saklamak. Sadece birkaç tercihleri ​​buysa güvenlik bir çok sorunu değildir.

Çerezleri her isteğiyle gönderilen olacağını unutmayın - Eğer çerez veri ve yük bir sayfada 10 resim arasında 2kb varsa, bu verilerin fazladan 22kb bulunuyor.

Ben en tarayıcılarını desteklemek istiyorsanız, o zaman etki başına 50 çerezleri aşmayın, bugün bu içine baktı ve etki alanı başına 4095 bayt (yani tüm çerezleri toplam boyutu <= 4095 bayt) aşmayın

Bu konuda daha fazla okumak için, here is the test page and results.

Cookies sayısı:

  • Chrome 9 izin domain başına 180 kurabiye
  • Firefox 3.6.3 izin domain başına 50 kurabiye
  • Internet Explorer 8 izin domain başına 50 kurabiye
  • Opera 10 ve 9 izin domain başına 30 kurabiye

Cookie boyutu Sınırları (4096 bayt):

  • Firefox ve Safari izin 4097 karakter, o ad ve değer ve eşittir işaretinden için biri için 4096 Neler kadar kurabiye.
  • Opera adı değeri için yukarı 4096 karakter ile çerezlerini ve eşittir işareti.
  • Internet Explorer adı için değer kadar 4095 karakter ile çerezlerini ve eşittir işareti.

SRC: http://webdesign.about.com/od/cookies/f/cookies-per-domain-limit.htm ve http://www.nczonline.net/blog/2008/05/17/browser-cookie-restrictions/

IIRC, bu çoğunluk genel için biraz daha 20, ve 10 belirli bir tarayıcı için (yine IIRC, IE5.5?). 10'a kadar güvenli bir numara olarak kabul edilir.

Sen gerçekten zaten birden fazla gerek yok - sadece bir kimlik istemci tarafında saklamak için birini kullanın ve aynı ID karşı depolanan sunucu tarafı gereken her şeyi saklamak. Başka bir şey dışında, daha az veri onları / bozuk / hack / vb kaldırmak için var olan müşteri, daha az bırakın.

Ayrıca sadece 1 çerez gerektirir oturumda ayarları saklayabilir, ama değişkenlerin çok sayıda olabilir. Veritabanı gibi, oturumların sunucuda biraz daha fazla depolama alanı gerektirir, ancak PHP onlar için yönetimi yerleşik bir iyi bir miktarda vardır.