• 22-02-2013, 20:08:24
    #1
    Reveloper
    Merhaba basit bi login kodu yaptım ancak anladığım kadarıyla açık var.. nasıl kapatacağımı bulamadım bir türlü?

    		<? if(empty($username_from_cookie)){?>		
    			<form method="POST" name="headlogin" action="login.php">
    			<input type="text" name="username" placeholder="Kullanıcı Adı" class="giris-text" />
    			<input type="password" name="password" placeholder="Şifre" class="giris-text" />
    			<input type="submit" name="loginhead" style="background:url(<?=$Url?>images/giris2.png); border:0px; outline:none; width:78px; height:34px;" class="giris-image" value="">
    			<a href="kayit-ol.php"><img src="<?=$Url?>images/uye2.png" class="giris-image" alt="Kayıt Ol" /></a>
    			</form>
    			<? }else{
    			$query = "SELECT * FROM users WHERE `username`='$username_from_cookie'";
    			$result = mysql_query($query) or die("Couldn't execute query");
    			while ($row= mysql_fetch_array($result)) {
    			$avatar=$row["avatar"];
    			}
    		?>
    			<div class="giris">
    				<a href="panel.php"><img src="<?=$Url?><?=$avatar?>" width="32" height="32" style="opacity:0.3;" alt="<?=$username_from_cookie?>"></a>
    					Hoşgeldiniz <?=$row["permissions"];?>"<a href="panel.php"><?=$username_from_cookie?></a>" İyi vakit geçirmeniz dileğiyle
    				<a href="logout.php" style="color:#f00;">Çıkış Yap</a>
    			</div>
    			<? } ?>
  • 22-02-2013, 21:27:05
    #2
    Üyeliği durduruldu
    Değişken isimlerinden anladığım kadarıyla username yi cookie den çekip beni hatırla tarzı bir sistem yapıyorsun Kullanıcı cookie deki username yi değiştirdiği zaman başka bir kullanıcı ile giriş yapmış olacak, cookie de bu tür verileri saklama ya da sağlam bir şekilde şifrelemelisin
  • 22-02-2013, 21:43:49
    #3
    Üyeliği durduruldu
    Cookie konusu doğrudur aşağıdaki gibi değiştirirsen sql injection a karşı önlem alabilirsin
     <?php if(empty($username_from_cookie)){?>         
                <form method="POST" name="headlogin" action="login.php"> 
                <input type="text" name="username" placeholder="Kullanici Adi" class="giris-text" /> 
                <input type="password" name="password" placeholder="Sifre" class="giris-text" /> 
                <input type="submit" name="loginhead" style="background:url(<?=$Url?>images/giris2.png); border:0px; outline:none; width:78px; height:34px;" class="giris-image" value=""> 
                <a href="kayit-ol.php"><img src="<?=$Url?>images/uye2.png" class="giris-image" alt="Kayit Ol" /></a> 
                </form> 
                <?php }else{ 
    			$username_from_cookie = mysql_real_escape_string($username_from_cookie);
                $query = "SELECT * FROM users WHERE `username`='$username_from_cookie'"; 
                $result = mysql_query($query) or die("Couldn't execute query"); 
                while ($row= mysql_fetch_array($result)) { 
                $avatar=$row["avatar"]; 
                } 
            ?> 
                <div class="giris"> 
                    <a href="panel.php"><img src="<?=$Url?><?=$avatar?>" width="32" height="32" style="opacity:0.3;" alt="<?=$username_from_cookie?>"></a> 
                        Hosgeldiniz <?=$row["permissions"];?>"<a href="panel.php"><?=$username_from_cookie?></a>" Iyi vakit geçirmeniz dilegiyle 
                    <a href="logout.php" style="color:#f00;">Çikis Yap</a> 
                </div> 
                <?php } ?>
  • 23-02-2013, 03:21:40
    #4
    Reveloper
    cookie atarken: setcookie($cookie_name,$cookie_value,time() + (86400),"/", $cookie_domain);
    bunu kullanıyorum?
  • 23-02-2013, 06:19:28
    #5
    Üyeliği durduruldu
    Burti adlı üyeden alıntı: mesajı görüntüle
    cookie atarken: setcookie($cookie_name,$cookie_value,time() + (86400),"/", $cookie_domain);
    bunu kullanıyorum?
    Zaten orada bir sorun yok

    $query = "SELECT * FROM users WHERE `username`='$username_from_cookie'";
    kullanmışsın mesela, eğer yukarılarda bir yerlerde
    $username_from_cookie = $_COOKIE['username'];
    şeklinde bir şey kullandıysan, ve mesela, örnek olarak kullanıcı kendi pc sindeki cookie yi değiştirip 'admin' yaptıysa yukarıdaki sorgu
    SELECT * FROM users WHERE username = 'admin'
    olacak, dolayısı ile admin olarak giriş yapmış olacak
  • 23-02-2013, 07:39:23
    #6
    sadece kullanıcı adını değil şifreyide cookie ile çekip 2 sine birlikte uyanı sorgulatırsanız herkes istediği kullanıcı adıyla giremez.
  • 23-02-2013, 13:00:12
    #7
    Üyeliği durduruldu
    merhaba;

    bu tarz işlemlerde mümkün olduğunca cookie değilde sunucu taraflı session kullanmanız daha sağlıklı olacaktır..