i'm working with sessions in PHP, and i have different applications on single domain. Problem is, that cookies are domain specific, and so session ids are sent to any page on single domain. (i don't know if there is a way to make cookies work in different way). So Session variables are visible in every page on this domain. I'm trying to implement custom session manager to overcome this behavior, but i'm not sure if i'm thinking about it right.
Ben tamamen PHP oturum sistemi önlemek ve oturum verilerini saklamak ve veritabanına kaydetmek script ucunda olacağını genel bir nesne, yapmak istiyorum.
- Ilk erişim i benzersiz session_id oluşturmak ve bir çerez yaratacak
- Script ucunda session_id, oturum ve son erişim başlaması için zaman damgaları ve bu REMOTE_ADDR, REMOTE_PORT, HTTP_USER_AGENT gibi $ _SERVER veri ile oturum verileri kaydetmek.
- Istemci cookie gönderilen session_id her erişim chceck veritabanı üzerinde, IP, Port ve (güvenlik) kullanıcı ajan kontrol ve (eğer süresi dolmamış) oturum değişkeni içine veri okumak.
- Session_id süresi dolmuşsa, veritabanından silin.
Bu oturum değişken (i bu sınıf ile sıkı bağlantı alacağı biliyorum, ama daha iyi bir çözüm hakkında bilmiyorum) tek olarak uygulanabilir olacaktır.
Ben aşağıdaki faydaları elde etmek çalışıyorum:
- Aynı sunucu ve aynı etki alanında başka bir komut görünmez Oturum değişkenleri
- Oturumu sona erme özel yönetim
- Açık oturumları görmek için bir yol (çevrimiçi kullanıcıların listesi gibi bir şey)
Ben bu çözüm herhangi dezavantajları bakan eğer ben emin değilim. Daha iyi bir yolu var mı?
Teşekkür ederiz!
UPDATE: i did not explain it in enough detail and caused a lot of confusion here, so i want to make clearer what i'm dealing with:
Ben çok farklı ortamlarda görevlendirilecek olan SOA sunucu uygulaması inşa ediyorum. Bu ortamlarda başka bir PHP uygulamalar olabilir, böylece o kendi sunucusuna sahip olmayacaktır. Bu şirketlerin çalışanları bu uygulamada kullanıcı hesaplarına sahip olur, bu yüzden bu uygulama içine oturum kimliği ile bir çerez elde edecektir.
Bildiğimiz gibi, web sunucusu yüklerken PHP çalıştıran oturum verileri (en azından varsayılan) fark etmez hangi dizin oturumu oluşturulur dan ne script. Bütün gereken bir oturumun kimliğidir. Bu oturum kimliği istemciden sunucuya her isteği ile gönderilir. Cevaplarınız i PHP belirli bir dizin için çerezleri kısıtlamak olabilir, nasıl bir yol var, ama onun bilgisayarda depolanan çünkü kötü niyetli bir kullanıcı, çerez düzenlemek mümkün. Benim durumumda kötü niyetli bir kullanıcı benim uygulama erişimi sahip olmamakla birlikte, aynı ortamda php script yazmak ve yürütmek için erişebilir ve veritabanı bulunuyor. Diye bir komut dosyası oluşturursanız, o böylece o izin verilmemesi gerektiğini, okuma ve benim uygulama düzenlemek oturum verileri ve benim uygulama bölümlerine erişmek için erişimi olan, benim uygulama çerez Session id kullanabilirsiniz.
Böyle bir ortamda uygulama dağıtma başka bir güvenlik tehdidi olacak görmek, ne için gidiyorum ben yapabileceği en iyi izolasyon ve varsayılan oturum yönetimi bu gibi kullanımlar için tasarlanmış çok tehlikeli ve değil gibi görünüyor.
Eğer varsayılan oturum yönetimi ile olacağını daha, benim tasarım daha az esnek, daha az güvenli bir şey, görmek Yani benim soru, ..
, Cevaplarınız için teşekkür ederim ..