• 10-11-2020, 17:31:15
    #1
    ürün sayfalarının id'sini alıp cookieye atıyorum.
    5 tane ile sınırlayıp, ziyaretçi 10 ürün sayfası gezse bile son gezdiği 5 sayfanın id'si cookide kalıyor daha eskilerini cookiden siliyorum.

    elde kalan son id değerlerine göre bir bölümde

    foreach içinde her ürün sayfası için bir kaç bilgi almak için bir tane sql komutu yazıyorum ve cookiden aldığım ürün sayfası id'sini belirtiyorum.

    foreach içinde foreach kullanıyorum ve sql komutu 5 kez yenileniyor kendi içlerinde foreach ile..

    Sonuç istediğimi yaptırıyorum.

    Fakat özellikle cookiye sayfaların id değerlerini atıyor ve sql de cookie değerlerini kullanıyorum.

    Güvenlik sorunu oluşturabileceği konusunda şüphe ediyorum.

    SİZCE:
    1-Almam gereken krtik güvenlik önlemi var mı?
    2-Kritik olmasa da daha güvenli olması için önerileriniz nedir?
  • 10-11-2020, 17:42:04
    #2
    php ve mysql'i pek bilmiyorum ancak özel olarak gönderilen request header içinde gönderilen cookie'ler için önlem almalısınız.
  • 10-11-2020, 17:42:17
    #3
    Gelen değerin numeric olup olmadığını kontrol ettirin. Numeric olmayınca işlem yaptırmayın sql olarak sorun olmaz.
  • 10-11-2020, 17:42:18
    #4
    Sorgular için PDO prepare bindParam kullanırsanız bir sıkıntı ve sorun teşkil edeceğini sanmıyorum. Aynen birde diğer arkadaşın dediği gibi değeri is_integer veya is_numeric ile denetleyin.
    • buddy
    buddy bunu beğendi.
    1 kişi bunu beğendi.
  • 10-11-2020, 17:43:36
    #5
    sql sorgu yaptırmadan önce cookie den aldığınız idlerin kontrolünü yapmanız yeterlidir diye düşünüyorum. id gerçekten id mi kontrolünü yaparak emin olduktan sonra sorgu yaptırabilirsiniz. Mesela (int)$deger ile sadece int olacağını belirtebilirsiniz.
  • 10-11-2020, 18:02:17
    #6
    Cookiden gelen idinin sayısal değer olup olmadığı ek olarak maksimum karakter sayısını ve cookiden gelebilecek maksimum id sayısını kontrol edeyim

    bu şekilde daha iyi olur mu? Ne dersiniz?

    profweb adlı üyeden alıntı: mesajı görüntüle
    php ve mysql'i pek bilmiyorum ancak özel olarak gönderilen request header içinde gönderilen cookie'ler için önlem almalısınız.
    emrah24 adlı üyeden alıntı: mesajı görüntüle
    Gelen değerin numeric olup olmadığını kontrol ettirin. Numeric olmayınca işlem yaptırmayın sql olarak sorun olmaz.
    Misafir adlı üyeden alıntı: mesajı görüntüle
    Sorgular için PDO prepare bindParam kullanırsanız bir sıkıntı ve sorun teşkil edeceğini sanmıyorum. Aynen birde diğer arkadaşın dediği gibi değeri is_integer veya is_numeric ile denetleyin.
    salimsevindik adlı üyeden alıntı: mesajı görüntüle
    sql sorgu yaptırmadan önce cookie den aldığınız idlerin kontrolünü yapmanız yeterlidir diye düşünüyorum. id gerçekten id mi kontrolünü yaparak emin olduktan sonra sorgu yaptırabilirsiniz. Mesela (int)$deger ile sadece int olacağını belirtebilirsiniz.
  • 10-11-2020, 18:59:48
    #7
    buddy adlı üyeden alıntı: mesajı görüntüle
    Cookiden gelen idinin sayısal değer olup olmadığı ek olarak maksimum karakter sayısını ve cookiden gelebilecek maksimum id sayısını kontrol edeyim

    bu şekilde daha iyi olur mu? Ne dersiniz?
    max id gereksiz bence, zaten id varsa vardır yoksa bir şey olmaz. maks karakter ileride sıkıntı çıkarabilir, (örneğin id 1-2 ile başlarken 4 karakterli sayılara gelirse v.s) ama atıyorum 256 karakter vs. ayarlayabilirsiniz ama gerek var mı, size kalmış.