Oturum Kimliğinin Aktarımı
Bir oturum kimliğini yaymanın iki yolu vardır:
-
Çerezler
-
URL bağımsız değişkeni
Oturum modülü her ikisini de destekler. Çerezler en uygunudur, fakat her
zaman kullanmak mümkün olmadığından ikinci bir yöntem sağlıyoruz. İkinci
yöntem, oturum kimliğini doğrudan URL'nin içine gömer.
PHP bağlantıları şeffaf olarak dönüştürme yeteneğine sahiptir. Çalışma
anında session.use_trans_sid
yönergesi etkin kılınmışsa,
göreli URI'ler otomatik olarak oturum kimliğini içerecek şekilde
değiştirilir.
Bilginize:
arg_separator.output
php.ini yönergesi bağımsız değişken ayracının değiştirilebilmesini sağlar. Tam
XHTML uyumluluğu için yönergeye değer olarak & belirtin.
Ayrıca, oturum başlatıldığında tanımlanan SID
sabitini
de kullanabilirsiniz. Eğer istemci uygun bir oturum çerezi göndermezse,
SID
sabiti
oturum_ismi=oturum_kimliği değerini içerecektir.
Aksi takdirde sabitin değeri bir boş dizge olur. Bu durumda, oturum
kimliğini koşulsuz olarak URL'lerin içine gömebilirsiniz.
Aşağıdaki örnekte bir değişkenin nasıl oturum değişkeni haline getirildiği
ve SID
sabitiyle başka bir sayfaya nasıl bağlantı
kurulduğu gösterilmiştir.
Örnek 1 - Tek bir kullanıcının sayfa erişimlerinin sayılması
<?php
session_start();
if (empty($_SESSION['count'])) {
$_SESSION['count'] = 1;
} else {
$_SESSION['count']++;
}
?>
<p>
Merhaba sayın ziyaretçi, bu sayfayı <?php echo $_SESSION['count']; ?>
kere ziyaret ettiniz.
</p>
<p>
Devam etmek için, <a href="nextpage.php?<?php echo htmlspecialchars(SID);
?>">buraya tıklayınız</a>.
</p>
XSS saldırılarından kaçınmak için URL'ye SID
yerleştirilirken htmlspecialchars() kullanılabilir.
SID
sabitini URL'ye yukarıdaki gibi
yerleştirecekseniz, PHP'yi
--enable-trans-sid seçeneğiyle derlemeniz gerekmez.
Bilginize:
Göreli olmayan URL'lerin harici siteleri işaret ettikleri varsayılır ve
oturum kimliğinin başka bir sunucuya ifşa edilme riskine karşı
SID
bunlara yerleştirilmez.