Standart oturum ömrü neden 24 dakikadır (1440 saniye)?


101

PHP Session Handling üzerine biraz araştırma yapıyorum ve session.gc_maxlifetime1440 saniyenin değeriyle karşılaştım. Standart değerin neden 1440 olduğunu ve nasıl hesaplandığını merak ediyordum. Bu hesaplamanın temeli nedir?

Seansları ne kadar uzun tutmak mantıklı? Session.gc_maxlifetime için hangi minimum / maksimum değerleri önerirsiniz? Değer ne kadar yüksekse, Web Uygulaması Oturum Kaçırma için o kadar savunmasızdır.


+1Güzel soru. 60 x 12 x 2 ile ilgili bir şey ... İlginç cevaplar bekleyelim ... :)
Praveen Kumar Purushothaman

4
İşte varsayılan değer ayarlanır kaynak kod satırı . GIT'e aşina olanlar, geçmişini takip edebilir ve bir RFC veya hata bileti (varsa) bulabilir.
Álvaro González

1
@Anil: Bu tartışma soruma cevap vermiyor.
Anna Völkl

2
@ ÁlvaroG.Vicario Değişikliği buldum: github.com/php/php-src/commit/… ancak ilgili dokümanlar sıfır. 1440gerçekten de zaman aşımı için orijinal dakika sayısıydı, bu yüzden sanırım birisi Sascha Schumann'ı bulmazsa asla bilemeyeceğiz.
Dai

6
Sascha'nın e-posta adresini buldum ve bununla ilgili olarak onunla iletişime geçtim, yanıt verirse insanlara haber vereceğim.
Dai

Yanıtlar:


184

Gerçek cevap muhtemelen buna çok yakın:

PHP3 günlerinde, PHP'nin kendi başına oturum desteği yoktu.

Ancak başlangıçta NetUSE AG'den Boris Erdmann ve Kristian Koehntopp tarafından yazılan PHPLIB adlı açık kaynaklı bir kitaplık, oturumları PHP3 kodu aracılığıyla sağladı.

Oturum yaşam süreleri saniye olarak değil , dakika cinsinden tanımlandı . Ve varsayılan ömür 1440 dakika veya tam olarak bir gündü. İşte PHPLIB'deki şu kod satırı:

var $gc_time  = 1440;       ## Purge all session data older than 1440 minutes.

Sascha Schumann, 1998-2000 yılları arasında PHPLIB projesinde yer aldı. Hiç şüphe yok ki PHP3 oturum koduna aşinaydı.

Daha sonra PHP4, 2000 yılında yerel oturum desteğiyle çıktı, ancak şimdi ömrü saniye cinsinden belirtildi.

Birisinin dakikaları saniyeye çevirmekten hiç rahatsız olmadığına bahse girerim. O kişinin Sascha Schumann olması muhtemeldir. Bu değer Zend motoruna kodlandıktan sonra, konfigürasyon ( php.ini) varsayılanı da oldu.


3
Üniteyi değiştirirken 24'ün özel bir anlam kazandığı göze çarpıyor. Yani verilen cevaplar arasından seninki bana en mantıklı geliyor.
Markus Malkusch

1
İlginç. Paylaşım için teşekkürler! :)
SysVoid

3
Bu gerçekten ilginç! Teşekkürler!
Anna Völkl

PHP4 varsayılan ayarlarına bir referans: github.com/php/php-src/blob/PHP-4.0/ext/session/session.c
CXJ

PHP belgelerine göre, oturum ömrü saniye cinsinden belirlenir: php.net/manual/en/…
lemhannes

-16

1440, saniyeleri saate / güne çeviren bir zaman hesaplamasında kullanılır.

  • 1 gün = 24 saat (saat * 24 = 1 gün)
  • gün = 1440 dakika (dakika * 60 * 24 = 1 gün)
  • gün = 86400 saniye (saniye * 60 * 1440 = 1 gün)

Misal:

9 gün [* 60] = 540 [* 1440] = 777600 saniye

Aynısı ters yönde de geçerlidir:

777600 saniye [/ 1440] = 540 [/ 60] = 9 gün


14
öyleyse neden standart oturum ömrü?
Félix Gagnon-Grenier

3
Çünkü araştırmanın gösterdiği ile yaklaşık olarak aynı olan matematik inek sayısı, aynı seansta iki istek arasındaki en büyük süre (20-30 dakika).
dimitar veselinov

22
@dimitarveselinov Hangi araştırma?
Markus Malkusch
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.