Çalışma Anı Yapılandırması

Bu işlevlerin davranışı php.ini içindeki ayarlardan etkilenir.

Oturum Yapılandırma Yönergeleri
İsimÖntanımlıDeğişlik YeriSürüm Bilgisi
session.save_path""INI_ALL 
session.name"PHPSESSID"INI_ALL 
session.save_handler"files"INI_ALL 
session.auto_start"0"INI_PERDIR 
session.gc_probability"1"INI_ALL 
session.gc_divisor"100"INI_ALL 
session.gc_maxlifetime"1440"INI_ALL 
session.serialize_handler"php"INI_ALL 
session.cookie_lifetime"0"INI_ALL 
session.cookie_path"/"INI_ALL 
session.cookie_domain""INI_ALL 
session.cookie_secure"0"INI_ALLPHP 7.2.0 öncesinde "" öntanımlıydı.
session.cookie_httponly"0"INI_ALLPHP 7.2.0 öncesinde "" öntanımlıydı.
session.cookie_samesite""INI_ALLPHP 7.3.0'dan beri kullanılabilmektedir.
session.use_strict_mode"0"INI_ALL 
session.use_cookies"1"INI_ALL 
session.use_only_cookies"1"INI_ALL 
session.referer_check""INI_ALL 
session.cache_limiter"nocache"INI_ALL 
session.cache_expire"180"INI_ALL 
session.use_trans_sid"0"INI_ALL 
session.trans_sid_tags"a=href,area=href,frame=src,form="INI_ALLPHP 7.1.0'dan beri kullanılabilmektedir.
session.trans_sid_hosts$_SERVER['HTTP_HOST']INI_ALLPHP 7.1.0'dan beri kullanılabilmektedir.
session.sid_length"32"INI_ALLPHP 7.1.0'dan beri kullanılabilmektedir.
session.sid_bits_per_character"4"INI_ALLPHP 7.1.0'dan beri kullanılabilmektedir.
session.upload_progress.enabled"1"INI_PERDIR 
session.upload_progress.cleanup"1"INI_PERDIR 
session.upload_progress.prefix"upload_progress_"INI_PERDIR 
session.upload_progress.name"PHP_SESSION_UPLOAD_PROGRESS"INI_PERDIR 
session.upload_progress.freq"1%"INI_PERDIR 
session.upload_progress.min_freq"1"INI_PERDIR 
session.lazy_write"1"INI_ALL 
session.hash_function"0"INI_ALLPHP 7.1.0'da kaldırıldı.
session.hash_bits_per_character"4"INI_ALLPHP 7.1.0'da kaldırıldı.
session.entropy_file""INI_ALLPHP 7.1.0'da kaldırıldı.
session.entropy_length"0"INI_ALLPHP 7.1.0'da kaldırıldı.
INI_* kiplerinin tanımları ve ayrıntılı açıklamaları Yapılandırma ayarlarının yeri bölümünde bulunabilir.

Oturum yönetim sistemi, php.ini dosyanıza yerleştirebileceğiniz bazı yapılandırma yönergelerini destekler. Bu yapılandırma yönergelerinin kısa açıklamalarını aşağıda bulabilirsiniz.

session.save_handlerstring
session.save_handler yönergesi (kayıt sistemi), bir oturumla ilişkilendirilmiş veriyi saklamakta ve geri almakta nelerin kullanılacağını tanımlar. files (dosyalar) öntanımlı değerdir. Bazı eklentilerin kendi save_handler yönergeleri vardır; bunları kurulumunuzun phpinfo() çıktısında görebilirsiniz. Ayrıca bakınız: session_set_save_handler().
session.save_pathstring
session.save_path yönergesi session.save_handler yönergesinde belirtilen kayıt sistemine hangi bağımsız değişkenlerin aktarılacağını tanımlar. Öntanımlı kayıt sistemin (files) seçerseniz bu yönergenin değeri dosyaların oluşturulacağı dosya yolu olacaktır. Ayrıca bakınız: session_save_path().

Oturum dosyalarınızın yayılacağı dizin derinliğini belirlemekte kullanılmak üzere seçimlik bir N bağımsız değişkeni vardır. Örneğin yönergeye '5;/tmp' değerini atarsanız, bir oturum dosyası şöyle bir konuma konabilir: /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If. N bağımsız değişkenini kullanacaksanız bu dizinleri kullanmadan önce oluşturmuş olmalısınız. Bunu yapmak için ext/session altında mod_files.sh adında bir betik vardır (Windows için mod_files.bat). Ayrıca, N bağımsız değişkeninin sıfırdan büyük bir değerle kullanılması durumunda otomatik bir çöp toplayıcının devreye gireceğine de dikkat ediniz; daha ayrıntılı bilgi için php.ini dosyanıza bakınız. Ayrıca, N bağımsız değişkenini kullanmanız durumunda, noktalı virgül (;) ayracı php.ini dosyasında açıklamaları başlatmak için kullanıldığından yönergenin değerini tırnak içine almalısınız.

Dosya saklama modülü dosyaları öntanımlı olarak mode 600 kullanarak oluşturur. Bu öntanımlı değer seçimlik MODE ile değiştirilebilir: N;MODE;/path burada MODE dosya kipinin sekizlik tabanda gösterimidir. Dosya kipini bu yolla belirlemek sürecin umask'ını etkilemez.

Uyarı

Bu yönerge öntanımlı değeriyle bırakılır veya herkesin okuyabileceği bir dizin tanımlanırsa (öntanımlı olan /tmp gibi), diğer kullanıcılar bu dizindeki dosyaların listesini alarak oturum bilgilerini sunucu üzerinde kendi amaçları doğrultusunda kullanabilirler.

Dikkat

Dizin derinliğini belirlemekte kullanılan seçimlik N bağımsız değişkeni yukarıda belirtildiği gibi kullanılırken 1 veya 2'den daha yüksek bir değer kullanımı büyük sayıda dizin gerektirmesindan dolayı bir çok site için uygun olmayacaktır; örneğin, 3 değeri dosya sistemi üzerinde (2 ** session.sid_bits_per_character) ** 3 dizinin varolabileceğini öngörür, bu da çok sayıda dosya girdisi açılması ve büyük miktarda alanın boşa harcanması demektir.

Sadece, sitenizin 2'den büyük bir N değeri gerektirecek kadar büyük olması halinde 2'den büyük bir değer kullanabilirsiniz.

session.namestring
session.name yönergesi çerez ismi olarak kullanılacak oturum ismini belirler. İsim sadece abecesayısal karakterler içermelidir. PHPSESSID öntanımlıdır. Ayrıca bakınız: session_name().
session.auto_startbool
session.auto_start yönergesi, bir oturumun otomatik olarak isteğin başlangıcında başlatılıp başlatılmayacağını belirler. Öntanımlı değer 0 olup, başlatılmaz.
session.serialize_handlerstring
session.serialize_handler yönergesi, veriyi dizgeleştirmek/nesneleştirmek için kullanılacak eylemcinin ismini belirler. Şimdilik sadece PHP dizgeleştirme biçemi (ismi: php_serialize), PHP'nin dahili biçemleri (php ve php_binary ismiyle) ve WDDX (wddx ismiyle) desteklenmektedir. PHP, WDDX desteği ile derlenmişse wddx bir seçenek haline gelir. php_serialize dahili olarak düz serialize/unserialize işlevini kullanır ve php ile php_binary'nin sahip olduğu sınırlamalardan azadedir. Daha eski digeleştirme eylemcileri $_SESSION içinde ne bir sayısal indis ne de özel karakterleri (| ve !) içeren bir dizge indisi saklayabilir. Betiğin durmasına yolaçan özel karakter hataları ve sayısal indislerden kaçınmak için php_serialize biçemini kullanın. php öntanımlıdır.
session.gc_probabilityint
session.gc_probability yönergesi session.gc_divisor yönergesi ile birlikte gc (garbage collection) çöp toplayıcı yordamının başlatılma olasılığını yönetmek için kullanılır. Ayrıntılar için session.gc_divisor yönergesinin açıklamasına bakınız.
session.gc_divisorint
session.gc_divisor yönergesi session.gc_probability yönergesi ile birlikte, her oturum ilklendirilişinde gc (garbage collection) çöp toplayıcı yordamının başlatılma olasılığını yönetmek için kullanılır. Olasılık, gc_probability/gc_divisor şeklinde hesaplanır. Örneğin, 1/100 oranının anlamı: Her istekte GC sürecinin başlatılma şansı %1'dir. session.gc_divisor yönergesinin öntanımlı değeri 100'dür.
session.gc_maxlifetimeint
session.gc_maxlifetime yönergesi verinin kaç saniye sonra 'çöp' olarak ele alınıp temizleneceğini belirler. Çöp toplayıcı oturum başlangıcında etkin olur (session.gc_probability ve session.gc_divisor yönergelerine bağlı olarak). 1440 (24 dakika) öntanımlı değerdir.

Bilginize:

Eğer session.gc_maxlifetime değeri olarak farklı betikler farklı değerler belirtiyorsa fakat oturum verisini saklamak için aynı yeri paylaşıyorlarsa verileri temizlemek için en küçük değere sahip betiğin değeri kullanılır. Bu durumda, bu yönerge session.save_path yönergesi ile birlikte kullanılmalıdır.

session.referer_checkstring
session.referer_check yöntemi, Her HTTP Referrer başlığında içerilmesini istediğiniz bir alt dizgeyi tanımlar. Referrer başlığı istemci tarafından bu alt dizge içerilmeden gönderilmişse gömülü oturum kimliği geçersiz olur. Yönergenin öntanımlı değeri boş dizgedir.
session.entropy_filestring
session.entropy_file yönergesi, oturum kimliğinin oluşturulma sürecinde ek döküntü kaynağı olarak kullanılacak harici bir özkaynağa (bir dosyaya) bir yol belirtir. Çoğu Unix sisteminde kullanılan örnekler: /dev/random veya /dev/urandom. Bu özellik Windows'ta desteklenmektedir. session.entropy_length yönergesine sıfırdan farklı bir değer atamak PHP'nin Windows Random API'sini bir döküntü kaynağı olarak kullanmasını sağlayacaktır.

Bilginize: PHP 7.1.0'da kaldırıldı. session.entropy_file için /dev/urandom veya /dev/arandom öntanımlıdır (hangisi varsa).

session.entropy_lengthint
session.entropy_length yönergesi yukarıdaki yönergede belirtilen dosyadan okunacak baytların sayısını belirler. Öntanımlı değer 0'dir (hiç bayt okunmayacak) 32 öntanımlıdır. PHP 7.1.0'da kaldırıldı.
session.use_strict_modebool
session.use_strict_mode modülün katı oturum kimliği kipini kullanıp kullanmayacağını belirler. Bu kip etkinse modül ilklendirilmemiş oturum kimliklerini kabul etmeyecektir. Tarayıcı tarafından ilklendirilmemiş bir oturum kimliği gönderilmişse, tarayıcıya yeni oturum kimliği gönderilir. Uygulamalar katı kipte oturum sabitlemesinden oturum benimsenmesi yoluyla korunur. 0(iptal) öntanımlıdır .

Bilginize: session.use_strict_mode etkinleştirmek genel oturum güvenliği için zorunludur. Tüm sitelerin bunu etkinleştirmesi önerilir. Ayrıntılar için session_create_id() örneğine bakınız.

Uyarı

session_set_save_handler() aracılığıyla kaydedilen özel bir oturum işleyicisi SessionUpdateTimestampHandlerInterface::validateId()'yi gerçeklemezse veya validate_sid geriçağrımını sağlamazsa, bu yönergenin değerine bakılmaksızın katı oturum kimliği kipi etkin bir şekilde devre dışı bırakılır. SessionHandler'ın SessionHandler::validateId()'yi gerçeklemediğine özellikle dikkat edin.

session.use_cookiesbool
session.use_cookies yönergesi modülün, oturum kimliğini istemci tarafında saklamak için çerezleri kullanıp kullanmayacağını belirler. Öntanımlı değer 1 olup çerezler kullanılır.
session.use_only_cookiesbool
session.use_only_cookies yönergesi modülün, oturum kimliğini istemci tarafında saklamak için sadece çerezlerin mi kullanılacağını belirler. Bu yönergeyi etkin kılarak oturum kimliklerinin URL'lerde aktarılmaması sağlamak suretiyle saldırıları önlemiş olursunuz. Öntanımlı değer 1'dir (etkin).
session.cookie_lifetimeint
session.cookie_lifetime yönergesi tarayıcıya gönderilen çerezin ömrünü saniye cinsinden belirler. Öntanımlı olan 0 değerinin anlamı "tarayıcı kapatılıncaya kadar"dır. Ayrıca bakınız: session_get_cookie_params() ve session_set_cookie_params().

Bilginize: Zaman aşımı zaman damgası sunucu zamanına göre belirlenir. Sunucu zamanının istemci zamanıyla aynı olma zorunluluğu yoktur.

session.cookie_pathstring
session.cookie_path yönergesi oturum çerezinin path anahtarını tanımlar. Bölü çizgisi / öntanımlıdır. Ayrıca bakınız: session_get_cookie_params() ve session_set_cookie_params().
session.cookie_domainstring
session.cookie_domain yönergesi oturum çerezinin domain anahtarını tanımlar. Öntanımlı değer none olup, çerez belirtimine göre çerezi üreten sunucunun konak isminin kullanılacağı anlamına gelir. Ayrıca bakınız: session_get_cookie_params() ve session_set_cookie_params().
session.cookie_securebool
session.cookie_secure yönergesi oturum çerezinin secure anahtarını tanımlar. Öntanımlı olarak off olup anlamı: Çerezler sadece güvenli bağlantılar üzerinden gönderilmez. Ayrıca bakınız: session_get_cookie_params() ve session_set_cookie_params().
session.cookie_httponlybool
session.cookie_httponly yönergesi oturum çerezinin httponly anahtarını tanımlar. Etkin olduğu takdirde çerezlere sadece HTTP protokolü üzerinden erişilebilir. Yani çerezlere JavaScript betik dilleriyle erişilemez. Bu ayar, (tüm tarayıcılar tarafından desteklenmiyor olsa da) özellikle XSS saldırılarıyla kimlik hırsızlığını önlemek için çok etkilidir.
session.cookie_samesitestring
Sunucuların bir çerezin siteler arası isteklerle birlikte gönderilmemesi gerektiğini öne sürmelerine izin verir. Bu sav, istemcilerin siteler arası bilgi sızıntısı riskini azaltmasına izin verir ve siteler arası istek sahteciliği saldırılarına karşı bir miktar koruma sağlar. Bunun tüm tarayıcılar tarafından desteklenmediğini unutmayın. Boş bir değer, herhangi bir atama yapılmadığını belirtir. Lax ve Strict değerleri POST isteklerinde siteler arasında çerez gönderilmeyeceğini belirtir. Get isteklerinde Lax siteler-arası çerez gönderilmesine sebep olurken Strict buna sebep olmaz.
session.cache_limiterstring
session.cache_limiter yönergesi, oturum sayfaları için kullanılacak önbellek denetim yöntemini belirler. Şu değerlerden biri olabilir: nocache, private, private_no_expire ve publicnocache öntanımlıdır. Bu değerlerin anlamları için session_cache_limiter() işlevinin belgesine de bakınız.
session.cache_expireint
session.cache_expire yönergesi, önbelleğe alınan oturumlar için dakika cinsinden ömür (ttl) tanımlar. Önbellek sınırlayıcı yoksa bu ayar etkisizdir. 180 öntanımlı değerdir. Ayrıca bakınız: session_cache_expire().
session.use_trans_sidbool
session.use_trans_sid yönergesi, şeffaf SID desteğinin etkin olup olmayacağını belirler. Öntanımlı değer 0 olup etkin değildir.

Bilginize: URL'ye dayalı oturum yönetiminin çerezlere dayalı oturum yönetimine göre daha fazla güvenlik riski vardır. Örneğin, kullanıcılar, etkin oturum kimliğini içeren bir URL'yi epostayla arkadaşlarına gönderebilir veya sık kullanılanlarına kaydedebilir; böylece bu kişiler sitenize hep aynı oturum kimliğiyle oturum açarlar. PHP 7.1.0'dan beri, tam URL yolu, örn, https://php.net/, trans sid özelliği tarafından elde edilmektedir. Öncesinde PHP sadece göreli URL yolunu değerlendirirdi. Rewrite hedef konakları session.trans_sid_hosts ile tanımlanır.

session.trans_sid_tagsstring
Şeffaf oturum kimliği desteği etkinken oturum kimliğini içerecek HTML etiketlerini belirtmek için kullanılır. a=href,area=href,frame=src,input=src,form= öntanımlıdır. form özel bir etikettir. <input hidden="oturum_kimliği" name="oturum_ismi"> form değişkeni olarak eklenir.

Bilginize: PHP 7.1.0 öncesinde, url_rewriter.tags bu amaçla kullanılırdı. PHP 7.1.0'dan beri, fieldset özel bir etiket değildir.

session.trans_sid_hostsstring
Şeffaf oturum kimliği desteği etkinken oturum kimliğini içerecek konakları belirtmek için kullanılır. $_SERVER['HTTP_HOST'] öntanımlıdır. Aralarda "," kullanarak çok sayıda konak belirtilebilir, konaklar arasında boşluk bulunmasına izin verilmez. Örnek: php.net,wiki.php.net,bugs.php.net
session.sid_lengthint
session.sid_length oturum kimliği dizesinin uzunluğunu belirtmek içindir. 22 ile 256 arasında olabilir. 32 öntanımlıdır. Uymluluk ihtiyacı varsa 32,40,vs. belirtilebilir. Uzun oturum kimliklerini tahmin etmek zordur. En azından 32 karakter olması önerilir.
İpucu

Uyumluluk bilgisi: session.hash_function=0 (MD5) ve session.hash_bits_per_character=4, session.hash_function=1 (SHA1) ve session.hash_bits_per_character=6 için 32 kullanın. session.hash_function=0 (MD5) ve session.hash_bits_per_character=5 için 26 kullanın. session.hash_function=0 (MD5) ve session.hash_bits_per_character=6 için 22 kullanın. INI değerlerini, oturum kimliklerinde en azından 128 bit olacak şekilde yapılandırın. session.sid_bits_per_character için uygun bir değer atamayı unutmayın, yoksa daha zayıf bir oturum kimliğiniz olur.

Bilginize: PHP 7.1.0 ve sonrasında kullanılabilir.

session.sid_bits_per_characterint
session.sid_bits_per_character kodlu oturum kimliği karakterlerinin bit sayısını belirtmek içindir. Olası değerler: '4' (0-9, a-f), '5' (0-9, a-v), and '6' (0-9, a-z, A-Z, "-", ","). 4 öntanımlıdır. Bit sayısı arttıkça daha güçlü oturum kimlikleri elde edilir. Çoğu ortam için 5 yeterlidir.

Bilginize: PHP 7.1.0 ve sonrasında kullanılabilir.

session.hash_functionmixed
session.hash_function yönergesi oturum kimliğinin üretilmesinde kullanılmak üzere bir ileti özeti algoritması belirtilmesini sağlar. '0' değeri MD5 (128 bitlik) algoritmasının, '1' ise SHA-1 (160 bitlik) algoritmasının kullanılmasını sağlar.

hash eklentisini (kullanılabilir durumdaysa) kullanarak sha512 veya whirlpool gibi algoritmalar belirtilebilmektedir. Desteklenen algoritmaların tam listesi hash_algos() işlevi ile edinilebilir

Bilginize:

PHP 7.1.0'da kaldırıldı.

session.hash_bits_per_characterint
session.hash_bits_per_character yönergesi, ikil ileti özeti dizgesi okunur biçeme dönüştürülürken karakterlerin kaç bitle saklanacağını belirler. Olası değerler: '4' (0-9, a-f), '5' (0-9, a-v), '6' (0-9, a-z, A-Z, "-", ",").

Bilginize:

PHP 7.1.0'da kaldırıldı.

session.upload_progress.enabledbool
Yükleme işleminin izlenmesini etkinleştirir. Öntanımlı olarak 1, yani etkindir.
session.upload_progress.cleanupbool
Tüm POST verisi okunur okunmaz (yani, yükleme tamamlandığında) işlem bilgisi temizlenir. Öntanımlı olarak 1, yani etkindir.

Bilginize: Bu özelliğin daima etkin olması şiddetle önerilir.

session.upload_progress.prefixstring
A prefix used for the upload progress key in the $_SESSION içinde yükleme işlemi anahtarı için kullanılacak önek. Bu önek, eşsiz bir indis elde ertmek için $_POST[ini_get("session.upload_progress.name")] değeriyle birleştirilir. "upload_progress_" öneki öntanımlıdır.
session.upload_progress.namestring
İşlem bilgisini $_SESSION içinde saklamak için kullanılacak anahtar. Ayrıca bakınız: session.upload_progress.prefix. $_POST[ini_get("session.upload_progress.name")] değeri aktarılmammışsa veya kullanılabilir değilseyükleme işlemi kaydedilmez. "PHP_SESSION_UPLOAD_PROGRESS" öntanımlıdır.
session.upload_progress.freqmixed
Yükleme izleme bilgisinin ne sıklıkla güncelleneceğini tanımlar. Bayt cinsinden veya yüzde olarak belirtilebilir. Örneğin, yükleme izleme bilgisi her 100 baytta bir veya dosyanın her %1'i alındığında güncellenebilir. "1%" öntanımlıdır.
session.upload_progress.min_freqint
Güncellemeler arasındaki asgari bekleme süresi (saniye cinsinden). "1" öntanımlıdır.
session.lazy_writebool
session.lazy_write = 1 atandığında oturum verisi sadece değişirse yeniden yazılır. Bu öntanımlı değerdir ve etkindir.

Yükleme işlemi, session.upload_progress.enabled etkin olmadıkça ve $_POST[ini_get("session.upload_progress.name")] değişkenine bir atama yapılmadıkça kaydedilmeyecektir. Daha ayrıntılı bilgi çin bakınız: Oturumda Yüklemelerin İzlenmesi

To Top