PHP ile kimlik doğrulama için Çerezler kullanmak için en iyi yöntem nedir?

4 Cevap php

Ben iyi Çerezleri kullanarak PHP ile kimlik birleştirmek için ipuçları ve fikirler arıyorum.

Her php script kullanıcı hala oturum olup olmadığını belirlemek için çerez değeri için kontrol etmelisiniz? Bu diğer komut her birinden o senaryoyu kontrol etmek ve dahil mi bir senaryo olmalı mı? Çerez değeri dosya sisteminin farklı derinliklerinden php tarafından görülebilir?

Gibi: blahblahblah.com / ve blahblahblah.com / login /

Ikisi çerezi okuyabilir?

Bir yazı üzerine bir sürü soru, ama teşekkürler!

4 Cevap

nothing is safe on the client side.

Siz herhangi bir tarayıcı üzerinde kolayca Cookies giriş bayrağını değiştirin. Böylece php en $ _SESSION üzerinde giriş-ilgili verileri kaydetme üzere daha fazla tavsiye edilir

Eğer oturum uzatmak istiyorsanız, sadece session_set_cookie_params() bakmak.

Varsayılan olarak, aynı oturum geçerli etki alanı ve bu alandaki tüm yolları için kullanılacaktır. Için hem blahblahblah.com / ve blahblahblah.com / login / Böylece okunabilir

Kullanıcı oturum açtığında, Oturum şifre kullanıcı adı ve karma kaydedin.

Her senaryonun başında, veritabanında biri ile Oturum kullanıcı adı ve şifrenizi doğrulayın. Doğru ise, o zaman kullanıcı başka yanlış oturum olduğu sunucu tarafında göstermek için (örneğin $ userLoggedIn = true) bir bayrak.

Belirli bir düzen içinde bazı düşünceler:

  • Kimlik vs kalıcı depolama: çeşitli katmanları ayırmak.
  • PHP oturumları oldukça sağlam ve kalıcı depolama korumak için önerilen bir yoldur.
  • Sen geçerli bir oturum var, ama geçerli bir giriş yapabilirsiniz.
  • Birden çok tanımlama kaçının. Bir yeterlidir. PHP oturumları bir tanımlama ile çalışır.
  • Eğer çerezleri alt etki alanları ve yolları ayarlayabilir, ancak tavsiye edilmez sürü, (yukarıya bakınız) konulmadıkça küçük noktası gerçekten var.
  • Eğer yerine oturumda bir çerez isteyebilirsiniz düşünüyorum her şeyi koymak.
  • Tüm sayfaları dahil bazı ortak kodu olmalıdır. Eğer oturumu başlatmak nerede olduğunu. Sonra her şey Sadece Çalışacak. Aynı zamanda da, giriş geçerli olup olmadığını kontrol edebilirsiniz.
  • Oturum açma kimlik doğrulama ve bununla ilişkili her şeyi yapar bir yer var.
  • Bir çıkış ekranı unutmayın!

Bir script olması onun iyi bir fikir oturumu / login denetimi yapmak ve güvenli sayfalar içinde dahil. Dizin parametresi "/" sonra da erişilebilir tamamında ayarlı ise derinliği AS, size () setcookie bu tanımlayabilirsiniz.

Genellikle onun daha güvenli şu, ancak çerez şifrelenmiş verilere dayalı kendi oturum sistemi inşa etmek için karar verebilir ve yine sunucu üzerinde veri depolamak oturumları, çok çalışır, ancak gibi, yerine kurabiye oturumları kullanmak iyi bir fikir Yan tavsiye edilir.

Çerez etki başına, bu nedenle olursa olsun sizin dizin yapısı ne kadar derin, çerez OK okunacaktır (sürece etki alanı aynı kalır gibi - NB bu www.example.com ve example.com farklı olabilir anlamına gelir çerezler).

Ben kullanıcılar ve onların oturum kimliği oturum açmış listeleyen, örneğin bir veritabanı tablosu ile çerezdeki oturum kimliği karşılaştıran bir kimlik doğrulama denetimi olan öneririm - Bu onay kendi yöntemi olabilir /) (include dosyasını dahil 'her on d sayfa. Bu şekilde onay her sayfa yük üzerinde yapılacaktır. NB bu temel ve çok daha güvenli bir yöntem vardır - burada diğer yorumlarla söz edilmiştir bazıları.

Mauris said olsa, hiçbir şey istemci tarafında güvenli olduğu gibi - sen doğru / yanlış onay için bir "logged_in" değerini saklamak üzere bir çerez kullanmayın!