Oturumu zaman aşımına uğradıktan sonra nasıl php uygulamalar bir kullanıcıyı tanımlamak mı?

3 Cevap php

Ben PHP uygulamalar Ben özellikle beni anlamak yardım etmeye mediawiki kodundan bakıyorum içeri bir kullanıcı oturum açmış olup olmadığını görmek için kontrol nasıl anlamaya çalışıyorum, ancak bu durumlarda tüm php uygulamalar oldukça yaygın olmalıdır.

Anladığım kadarıyla, ana durumlar şunlardır:

  1. Bir kullanıcı sadece oturum açmış veya oluşturulan, onlar sayfası PHP $ _SESSION değişkeni ve çerez ortak verileri kontrol ederek kendi bilir onları ziyaret her zaman.

  2. Bir kullanıcı 'Beni hatırla' seçeneği uzun zaman önce giriş sayfasındaki kontrol vardı. Onları kimlik doğrulaması için sunucu üzerinde bir belirteç ile kontrol edilir bir tokenID, ile orada bilgisayarınıza bir çerez var. Erişimler arasındaki zaman hafta olabilir, çünkü bu durumda, hiçbir oturum değişken vardır.

Benim soru bir kullanıcı oturum ne olur, ancak PHP oturum zaman aşımına uğrar ve o sayfaya erişmek istiyor? Ve giriş sayfasına yönlendirilmek olurdu - Ben orada sunucu kişinin kim olduğunu bilmek için kolay bir yol olduğunu farz olurdu.

Ancak, mediawiki yok sadece. Ben oturum dosyaları X dakika sonra silinir doğruladıktan ettik, ama ben mediawiki'de içinde yenileme vurduğunda, ben olduğum kullanıcı bilir, ve 'belirteç' değişken çerez dahil değildir.

3 Cevap

Yeniden doğrudan oturum süresi doldu ne zaman kullanıcı oturum açmış (checking the "remember me" thing) must contain enough informations to re-create a session, the cookie oluşturulur oldu oturum açma sayfasına etmek istemiyorsanız .

Ve bir oturumu yeniden oluşturarak içeri kullanıcıyı yeniden günlüğü anlamına gelir

Hangi çerez kullanıcıyı tanımlamak için yeterli veriyi içermelidir anlamına gelir.


Of course, you cannot store the login + password in the cookie, at least in plain clear text, as cookies go through the network with each HTTP request ; wouldn't be quite safe.

Ama saklamak için ... yeterli veri bir yolunu bulmak zorunda; oturum açma ve kullanıcı gerçekten çerez giriş diyen olmadığını belirlemek için kullanılan karma muhtemelen bir tür gibi.

İşte questions + answers that might be interesting, bu konuda bir çift vardır:

Cevap tanımlama olduğunu. Oturumları sona zaman, sunucu, tarayıcı tarafından gönderilen olandan başka kullanıcıları tanımlamak için bir yol vardır. Peki ne olur uygulama şeffaf oturumu yeniden çerez verilerini kullanır. Çerez süresi dolmuş veya silinmiş ise, oturum açma sayfasına yönlendirme gerçekten tek seçenektir.

Goo soru. Peki, çoğunlukla "beni hatırla" işlevselliği kullanıcıyı doğrular bir "belirteç" saklamak, bir cookie kullanılarak uygulanır.

Bu yapılmadığı ve hiçbir tanımlama sunucuya gönderilir ise, tek mümkün yolu sunucu bu parametreleri bir seri dayandığını "tahmin" olduğunu olurdu. IP, kullanıcı aracısı dizesini, vb ... Ama bu pek çok durumda işe yarayabilir ama bir güvenlik riski temsil beri en iyi uygulama olarak kabul edilmez: Bu parametreler içerebilir. Ör. birçok kullanıcı, proxy sunucularını vb ağı paylaşan .. ve bu kötü durumda başkasının hesabına bir kullanıcı giriş yapabilir.