$ _SESSION değişkeni verileri değiştirme

3 Cevap php

Şu anda $_SESSION olarak yapıcı mağaza değişkenleri bir sınıf var.

I was told not to store the user_id in $_SESSION, because then a user could change the ID to a one of his liking, and then access the website freely from any account. Instead, I've stored a session_id and created a table that has links a session_id to a user_id.

Benim soru - bu verileri işlemek için ne kadar zor olduğunu? Ben de proje üzerinde bir mağaza sistemi var, ve ben bir $_SESSION değişkene mağazanın sahibi kimliği gibi şeyler saklamak mümkün olmayacağını fark etti. Bu en azından, veri almak için, veritabanını her sayfayı sorgulama bana yol açacak.

Nasıl güvensiz bu bilgi bu tür saklamak için $_SESSION? Herkes daha iyi bir çözüm var mı?

3 Cevap

Kim yanlış olduğunu söylemiştim; kullanıcı, $_SESSION dizide saklamak verileri değiştiremezsiniz. Kullanıcı could edit PHP bu kullanıcıyı tanıması böylece oturum kimliği ile ayarlanır çerez nedir. Onlar gerçekten gerçekçi olsa da, başka bir kullanıcının oturum kimliği bunu değiştiremezsiniz. Birisi bir şekilde web sitenize kullanıcı giriş, ama çok sen bunun yanı sıra bazı IP denetimi hakkında yapabileceği bir şey yok gibi onlar poz hangi durumda kullanıcının oturumkimliği çerez bir tutun alırsa çalıştırmak tek tehlike değildir.

Kim yanlış olduğunu söylemiştim.

Oturum veri sunucuda depolanan - sadece birisi tarafından değiştirilebilir kimin sunucuya erişim gibi, ya da birisi oturum verilerini değiştiren bir komut dosyası çağırın, ve dedikleri tek komut sayfaları verilen mümkün olup olmadığını sitenizin size (sürece kodunuzu hiçbir kusurları vardır sağlamak için adımlar atması gibi) bu kontrol edebilirsiniz.

Oturum veri web geçici dosyaları sunucu (varsayılan) veya başka bir yerde DB veya (bunu yapılandırabilirsiniz) tarafından saklanan ediliyor. Yani son kullanıcı Ona sunucuya FTP / SSH erişimi vermeyin eğer $ _SESSION veri hiçbir şeyi değiştiremezsiniz. O değiştirebilirsiniz tek şey isteği oturum kimliği olduğunu, ancak güvensiz bir şey bu durumda var. Peki, "danışman" HTTP oturumları hakkında daha okuyacak ve nasıl çalışır umuyoruz.