PHP Güvenlik Get üzerinden MySQL benzersiz kimliği Passing zaman

3 Cevap php

Benim ana sayfasında çeşitli kitaplar bağlantıları olan bir web sitesi var diyelim.

<a href='books.php?id=1'>Book 1</a>
<a href='books.php?id=2'>Book 2</a>
<a href='books.php?id=4'>Book 3</a>

Kitaplar 1-3 ancak id = 3 ayrı Ben gösteren ya da sitenin bu bölümü üzerinden yetkilendirme değilim başka catelog değildir, benim sistem vardır. Bir kullanıcı Book 3 tıklandığında, o zaman id = 3 için, onlar sadece (I kontrol uygun oturumu yok varsayarak) kaydını çekin = 4 id değişti.

Belirli bir kaydı çekmeye çalışırken geçen konum olsun id belirsiz bir iyi bir yolu var mı? sadece id doğru sorgulama ve aktif kontrol olmadan, başka bir sonuç almak mümkün olacaktır, istek sayfalara kolay olurdu geçirerek görünüyor.

Bunu yapmak için daha iyi bir yolu var mı?

Şerefe

3 Cevap

Her zaman, her zaman, kullanıcı sayfaya erişmek mümkün olup olmadığını kontrol etmek gerekir. Eğer bir şekilde saklamaya bile birileri her zaman, onlar için gidiyoruz linki değiştirebilirsiniz, çünkü bu, sen yanlış veri görünmüyor doğrulamak için tek yoldur.

Sadece hayır kaçış yoktur. Her zaman kayıt erişilebilir olduğunu doğrulamak gerekir.

Muhtemelen md5 veya ne olursa olsun elle girmek zor yapmak için kullanarak id falan karma olabilir, ama bu gerçekten iyi bir fikir değil.

Ne yapmalıyım yetkisiz erişime engellemek olacaktır books.php komut sunucu tarafında güvenlik uygulamaktır. Bu güvenli sitenizi tutacak tek şey bu.

Sadece sesli düşünüyorum:

  1. Eğer kitap mysql tabloda sütun kullanıcıların tablolarda "görünür" ... ya userlevel diyerek yapabilirsiniz.
  2. Bir php işlevi yapmak veya eğer deyim:

    if (user is not in user_level) // user is not allowed to see everything
    {
        redirect to previous page;
    }
    else if (user is in user_level) // user is allowed to see everything
    {        
        display all items;
    }