Bu aa PHP güvenliği çok gölgeli alanı - nasıl url bir çerez veya session id maruz kalmadan oturumu devam etmek? Ne yazık ki, sadece biraz güvenli çözüm bir tanımlama ile olur ama ben mümkün olduğunca güvenli hale getirmek için bir yol denemek ve açıklamak gerekir.
Kullanıcı off-site gitmeden önce tekrar giriş bilgilerini sağlamaya gerek olmadan onları geri kabul veritabanı hazırlamak gerekir - kullanıcı tabloda iki sütun oluşturmak - "anahtar" ve "zaman aşımı".
Bir kullanıcı ödeme ağ geçidi üzerinden siteyi terk hazırlanırken Şimdi, veritabanındaki kayıt güncelleme gerekiyor - saklamak için benzersiz bir anahtar oluşturur.
$key = md5(uniqid(rand(), true));
Bir zaman aşımı (- ihtiyacınız ne olursa olsun diyelim ki, bir saat ya da iki, hatta bütün bir gün) ile birlikte datebase bu saklayın. Bu kadar da belirtilen süre içinde geri dönmek ve doğru anahtarı üretmek gibi sistem kullanıcıyı tanıması ve tekrar oturum hakkında endişelenmenize gerek yok devam edecektir.
Şimdi aynı anahtarı ve, diyelim ki, onların bir username tuzlu md5 hash (sadece durumda) ile bir çerez ayarlamanız gerekir. Eğer (hassas bilgilerin sonsuza dek ortalıkta eski çerezleri istemiyorum) veritabanında kendi plak verdi aynı zaman aşımı vermek emin olun.
Onlar siteye iade ettik benzersiz kimliği ve karma adı ile çerez kapmak ve veritabanında anahtar / zaman aşımı kombinasyonu karşılaştırın. Eğer uyarsa, tüm iyi. Sonra bir çerezi silmek.