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.