• 15-06-2020, 15:30:32
    #1
    Merhabalar,

    Her hangi bir framework (Bootstrap dahil) vs. kullanmadan bir websitesi yapıyorum sıfırdan. Server side için PHP kullanıyorum. Şöyle bir sorunla karşılaştım;

    Kullanıcı girişi yapıldıktan sonra tarayıcıya bazı çerezler ekliyorum. Kullanıcı adı, isim, soyisim gibi. Bir de login diye bir çerez gönderip kullanıcının giriş yapıp yapmadığına göre 0 veya 1 değerlerini gönderiyorum karşılık olarak. Ve giriş yapmış kullanıcı ile yapmamış kullanıcı için farklı arayüzler mevcut belirli yerlerde ve giriş yapmamış kullanıcının erişmemesi gereken yerler var. Sorun şu ki F12 ile tarayıcı çerezlerine girerek login değeri elle manuel olarak değiştirilebiliyor. Yani giriş yapmadan elimle gidip o değeri 1 yapabiliyorum. Böylece arayüzde görünmesini istemediğim şeyler gözükmeye başlıyor. Bu durumun önüne geçmenin bir yolu var mı? İleride kullanacağım bir çok şey için çok basitçe aşılabilen bir güvenlik problemi çıkartıyor önüme.

    Çerezleri tarayıcıya şu kodlarla ekliyorum;
    setcookie('us_name', $row["us_name"]);
    setcookie('us_id', $row["us_id"]);
    setcookie('login', 1);
    Daha sonra şu kodlarla çağırarak sitede kullanıyorum;

    $cm_name = $_COOKIE['us_name'];
    $cm_writer_id = $_COOKIE['us_id'];
    
    if ($login == 1) {
          ....
    }
    Özet: Sitenin kullandığı çerezlerin manuel olarak değiştirilmesini engellemenin bir yolu var mı?
  • 15-06-2020, 15:32:15
    #2
    Login bilgileri cetezler ile tutun ama 1 0 olan seyi sesion ile tutun sanirim ozaman guvenli olur
  • 15-06-2020, 15:33:46
    #3
    evet vardı yani öyle hatırlıyorum eğer yanlış hatırlamıyorsam bulursam atayım buraya
  • 15-06-2020, 19:20:21
    #4
    Ben şöyle yapıyorum:
    Çerezlerle aynı değerlere sahip sessionlar oluşturuyorum. Session ve çerez eşitse problem yok demektir. Eşit değilse düzenlenmiş demektir. Tabii tarayıcı kapanırsa problem olabiliyor.

    Yada çerezleri şifreleyip ana değerlerini yazmayın. Örneğin kendi hash metodunuzla şifreleyip, o hash metodu ile çözülmüyorsa geri o zaman kullanıcı düzenlemiş demektir.
  • 15-06-2020, 21:06:42
    #5
    emreires adlı üyeden alıntı: mesajı görüntüle
    Ben şöyle yapıyorum:
    Çerezlerle aynı değerlere sahip sessionlar oluşturuyorum. Session ve çerez eşitse problem yok demektir. Eşit değilse düzenlenmiş demektir. Tabii tarayıcı kapanırsa problem olabiliyor.

    Yada çerezleri şifreleyip ana değerlerini yazmayın. Örneğin kendi hash metodunuzla şifreleyip, o hash metodu ile çözülmüyorsa geri o zaman kullanıcı düzenlemiş demektir.
    Bu inanılmaz işime yaradı.
    Çok teşekkürler
  • 16-06-2020, 13:25:44
    #6
    Epiwish adlı üyeden alıntı: mesajı görüntüle
    Merhabalar,

    Her hangi bir framework (Bootstrap dahil) vs. kullanmadan bir websitesi yapıyorum sıfırdan. Server side için PHP kullanıyorum. Şöyle bir sorunla karşılaştım;

    Kullanıcı girişi yapıldıktan sonra tarayıcıya bazı çerezler ekliyorum. Kullanıcı adı, isim, soyisim gibi. Bir de login diye bir çerez gönderip kullanıcının giriş yapıp yapmadığına göre 0 veya 1 değerlerini gönderiyorum karşılık olarak. Ve giriş yapmış kullanıcı ile yapmamış kullanıcı için farklı arayüzler mevcut belirli yerlerde ve giriş yapmamış kullanıcının erişmemesi gereken yerler var. Sorun şu ki F12 ile tarayıcı çerezlerine girerek login değeri elle manuel olarak değiştirilebiliyor. Yani giriş yapmadan elimle gidip o değeri 1 yapabiliyorum. Böylece arayüzde görünmesini istemediğim şeyler gözükmeye başlıyor. Bu durumun önüne geçmenin bir yolu var mı? İleride kullanacağım bir çok şey için çok basitçe aşılabilen bir güvenlik problemi çıkartıyor önüme.

    Çerezleri tarayıcıya şu kodlarla ekliyorum;
    setcookie('us_name', $row["us_name"]);
    setcookie('us_id', $row["us_id"]);
    setcookie('login', 1);
    Daha sonra şu kodlarla çağırarak sitede kullanıyorum;

    $cm_name = $_COOKIE['us_name'];
    $cm_writer_id = $_COOKIE['us_id'];
    
    if ($login == 1) {
          ....
    }
    Özet: Sitenin kullandığı çerezlerin manuel olarak değiştirilmesini engellemenin bir yolu var mı?
    Çerezlerde altın kural hassas bilgilerin yazılmamasıdır. (TCKN, Ad, Soyad, Telefon ve buna benzer kişisel veya sisteme ait verilir). Çereze girilen anahtar her zaman Sessionda veya Veritabanında bir karşılığı olan veriler olmalıdır örneğin user_login: <şifrelenmiş anahtar değer>. Çerezler web sitenizde dolaşan kullanıcıyı tanılamak için kullanılır. Beni Hatırla gibi bir özellik kullanmıyorsanız çerezleri kullanmanıza gerek yoktur ancak ben sitemde dolaşan kullanıcıları takip etmek istiyorum kullanıcı geri geldiğinde kim olduğunu sistemim tanısın ve o kullanıcıya çeşitli ayrıcalıklar tanısın diyorsanız çerezler bunun için biçilmiş kaftandır. Yukarıda verdiğim örnekte belirttiğiniz anahtar veritabanında veya sessionda x kullanıcıyı temsil edecek ve kullanıcı siteye geldiğinde işlemleri Client tarafından değil tamamen Server tarafından kontrol ederek hiç bir hassas veriyi kullanıcıya göstermeden arkaplanda işlemlerinizi halledebileceksiniz.