PHP oturumları değişkenlerin kötü işleme?

5 Cevap php

Şu anda o anki sayfayı düzenlemek böylece ziyaretçi yönetici olarak oturum olup olmadığını kontrol etmek benim CMS aşağıdaki kodu kullanıyorum:

if($_SESSION['admin']=="1")
{
        echo "<a href="foobar/?update">edit</a>";
}

Ama kod güvensiz olduğunu endişeliyim. Can değil $ _SESSION değişkenleri kolayca kullanıcı tarafından değiştirilebilir?

Ne daha güvenli bir uygulama olacaktır?

5 Cevap

Hayır, bunu yapmak için iyi bir yoldur. O sunucuya erişimi yoksa kullanıcı, $ _SESSION küresel değiştiremezsiniz. stay away from client-side cookies unutmayın.

Daha da güvenli hale getirmek için, iyi bir şekilde IP-adresini saklamak ve her isteği arasında aynı kalır kontrol etmektir.

Kod sadece bir bağlantı gösteren konum, Tamam. Sadece GÜNCELLEME komut yanı korumalı olduğundan emin olun.

$_SESSION değişkenleri kullanıcı tarafından ayarlanamaz. Genellikle geçerli kullanıcının izinleriyle ilgili kullanıcı arkaplana (genellikle sadece bir tablo kullanıcıları, bazen LDAP) isteyeceğini, ancak kodu, bu nedenle gayet.

Ben oturum güvenliği konusunda bu sunum bulundu

Bu önlemek için nasıl açıklıyor:

  • Oturum sabitleme.
  • Oturum kaçırma.

Ayrıca daha fazla bilgi ile slayt bazı gerçekten mallar bağlantıları vardır

Senin kodlama güvenli kez Oturum değişkenleri yeterince güvenli olmalıdır.

Also, use the follow instead. Stops mistakes with == Probably should also use true too as it is a lot quicker than string comparisons.

if( "1" === $_SESSION['admin'] )