PHP & ile oldukça "büyük uygulama" gelişmekte oldum biraz-başarılı benim çatınızdaki kimlik doğrulama mekanizması kullanılarak 2 yıl geçmiş Kohana çerçeve. app büyümüş olarak ama bu süre içinde, ve birçok ilgili devlet koruma sorunları ortaya.
ana sorun bu çerez odaklı oturumları şunlardır:
- Web servis erişimi için kullanılamaz (en azından bunu yapmak için gerçekten güzel değil ..)
- mobil erişim sorunlu birçok durumda
- Aynı tarayıcıda aynı anda birden çok uygulama (sert hile ile çözülebilir, ama yine de ..) izin vermez
- % 100 doğru çalışması için birçok yapılandırmaları ve karmaşa gerektirir ve bu olmadan var - (devre dışı kurabiye, eski tarayıcıların hata ve güvenlik açıkları vb) tarayıcı sorunları
Bu eski iplik belirtilen diğer birçok oturumu kusurları: http://lists.nyphp.org/pipermail/talk/2006-December/020358.html
Gerçekten uzun bir araştırma sonrasında ve herhangi bir iyi kütüphanesi olmadan / on-el-çözüm ayakları benim ihtiyaçları için, ben bu sorunları çoğunluğu için özel bir çözüm geldi.
The solution i thought about is not using cookies (for statefullness) . instead emulating it by passing back & forth a session-token through the ajax requests. For security, the session token is regenerated on each request. Also, a fingerprint (referrer, OS, clientVer ) is saved on session creation, and validated on each request.
From the first glance that supposed to be not-less-secure than equivalent cookie-driven implementation, and at the same time it's simple, maintainable, and resolves all the cookies flaws.. But i'm really concerned because i often hear the rule "don't try to implement custom security solutions".
Ben gerçekten bu yöntemle ilgili herhangi bir ciddi geri bildirim ve herhangi bir alternatifleri takdir edecektir.
Ayrıca, çerezler olmadan sayfa-tazelede durumunu korumak için nasıl hakkında herhangi bir ipucu harika :) ama küçük bir teknik prob şu olacaktır.
Ben bazı benzer bir yazı gözardı eğer özür dilerim .. oturumları hakkında onlardan milyarlarca var.
Önceden (ve burada dek okumak için!) Big teşekkürler.