Çerezler / Oturumlar sisteme giriş

4 Cevap php

Bir kullanıcı giriş I / Onu 'nin kimliği almak ve bir oturumda var zaman kaydetmek. Ne ben merak ediyorum, bu gitmek için yoludur? Yoksa kurabiye kullanmalıyım? bu yüzden otomatik böylece giriş ve.

session_start();


ifcorrectlogin {
$_SESSION['id'] = mysql_result($loginQuery, 0, 'user_id');
}

nasıl sizin kullanıcıların kimlik doğrulaması mı?

/ / Yeni Üye

4 Cevap

Evet, bu gitmek için yoludur. Oturum kendisi zaten size etrafında herhangi bir programlama çabaları kaldırmak için bir cookie tarafından desteklenmektedir. Oturum (aslında, çerez) sürece kullanıcı açık tarayıcı örneği vardır ya kadar yaşayacak sunucu tarafında dışarı oturumu kez kullanıcı belirli bir süre (genellikle yaklaşık 30 dakika) için siteyi ziyaret etmedi çünkü.

Oturum açma, sadece $_SESSION olarak elde edilen User koydu. Kısıtlı sayfalarında her istek üzerine Eğer oturum açmış User $_SESSION kullanılabilir olup olmadığını sadece kontrol ve buna isteği işlemek, yani onunla devam etmek ya da bir giriş hata veya yönlendirme sayfa. Oturum kapatmada, sadece $_SESSION den User çıkarın.

Bir Remember me on this computer seçeneğini eklemek istiyorsanız, o zaman uzun oturumda daha yaşayan bir tanımlama kendiniz eklemeniz gerekir. Sadece aksi takdirde kesmek çok kolay, çerez için uzun, eşsiz ve zor tahmin değeri oluşturmak emin olmanız gerekir. PHP sizin webbrowser adı phpsessionid ile çerezi kontrol ederek bunu nasıl bak.

Çerezler çok kolay manipüle edilebilir. Sessions ile Giriş / Çıkış yönetmek. Eğer isterseniz, bugünkü oturumu sona erdikten sonra ziyaret ettikleri dahaki sefere bir çerez kullanıcıların emailaddress / kullanıcı adı saklamak, ve onlar için adı kutusunu doldurabilir.

Ben misc ile uğraşmak zorunda kalmamak bir oturum motoru bulmaya çalışacaktı. Eğer yanlış ufak bir şey yaparsan seni kıçından lokma güvenlik sorunları. Ben en çerçeveler biri olurdu varsayılabilir ancak ben alanındaki diğer teklifleri farkında değilim yerleşik bir oturum motora sahip Django kullanın.

Onlar django yaptım yolu her sayfa görünümünü cellenmektedir kullanıcının çerezleri bir kriptografik karma yerleştirerek ve kullanıcı tahrifat ve güvenlik sorunlarını önlemek için sunucu üzerinde bir veritabanındaki tüm diğer oturum bilgilerini kaydederek oldu.

As BalusC mentions, the session_-functions in php are the way to go, your basic idea is sound. But there are still many different realisations, some of them have their pitfalls. For example, as Jonathan Samson explains, using cookies can result in security holes.

Benim PHP biraz paslı, ama session_-fonksiyonları da URL'ler kodlanmış oturum kimlikleri kullanabileceğinizi unutmayın. SID kopyalayarak oturum ele önlemek için (There was also an option to have this automatically added to all local links (as GET) and form targets (as POST). But that was not without risks, either.) bir yolu IP adresini hatırlamak ve bu isteği gönderilen IP için geçerli bir oturum kimliği ile gelen herhangi bir istek için karşılaştırmaktır.

Gördüğünüz gibi, altta yatan bir yöntem düşünün daha çok şey var, sadece başlangıç. Tarafından tavsiye SapphireSun, bu nedenle dikkate alınması gereken bir şeydir: iyi test kütüphanesi kullanarak, kendi oturum sistemi geliştirmek için değerli geliştirme zamanı kullanmadan, güvenlik iyi bir seviyede elde edebilirsiniz. Ben size gerçek dünyada dağıtmak isteyen herhangi bir sistem için bu yaklaşımı öneriyoruz.

PHP oturumları ve güvenlik sorunları hakkında bilgi edinmek istiyorsanız sadece not bunu nasıl anlamak için OTOH, kesinlikle, bunu kendiniz yapmanız gerekir ;-)