• 02-03-2021, 10:54:17
    #1
    formlardan ve request ile gelen veriler ile sql inject - login hack - yapılamamasını dolayısıyla sitemin güvenliğini nasıl sağlarım. Mysqli kullanıyorum.

    $query= "SELECT * FROM user WHERE id='$uid'";
    $data=mysqli_query($conn,$query);
    $row = mysqli_fetch_array($data);
    $user_name= $row["name"];
    kullandığım örnek sorgu yapısı bu. çoğu yerde farklı kullanılar görüyorum prapare falan ama onları anlayamadım. Yardımcı olursanız sevinirim tşk.
  • 02-03-2021, 10:58:08
    #2
    Hocam bu açığı pdo kullanarak yüzde 90 üzerinde bir oran ile koruyabilirsiniz. Onun dışında ise kendi güvenlik önlemleriniz devreye giriyor
  • 02-03-2021, 11:05:54
    #3
    function noinject($kelime) {
    $kelime = str_replace("'"," ",$kelime);
    $kelime = str_replace("--","_",$kelime);
    $kelime = str_replace("/*"," ",$kelime);
    $kelime = str_replace("*/"," ",$kelime);
    $kelime = str_replace(";"," ",$kelime);
    $kelime = str_replace("drop","drp",$kelime);
    $kelime = str_replace("DROP","DRP",$kelime);
    $kelime = str_replace("alter","atr",$kelime);
    $kelime = str_replace("ALTER","atr",$kelime);
    $kelime = str_replace("HTTP://","url:",$kelime);
    $kelime = str_replace("http://","url:",$kelime);
    $kelime = str_replace("href=","href=http://vildansalgar.com.tr ref=",$kelime);
    return $kelime;
    }
    daha önce php4-5 zamanında yukarıdaki gibi bir fonksiyon kullanmışım.
    ayrıca netde
    $username = mysql_real_escape_string($_POST['username']);
    $password = mysql_real_escape_string($_POST['password']);
    şeklinde bir kullanım gördüm bunlar yeterli mi sizce ?
  • 03-03-2021, 18:38:59
    #4
    gurdeniz adlı üyeden alıntı: mesajı görüntüle
    function noinject($kelime) {
    $kelime = str_replace("'"," ",$kelime);
    $kelime = str_replace("--","_",$kelime);
    $kelime = str_replace("/*"," ",$kelime);
    $kelime = str_replace("*/"," ",$kelime);
    $kelime = str_replace(";"," ",$kelime);
    $kelime = str_replace("drop","drp",$kelime);
    $kelime = str_replace("DROP","DRP",$kelime);
    $kelime = str_replace("alter","atr",$kelime);
    $kelime = str_replace("ALTER","atr",$kelime);
    $kelime = str_replace("HTTP://","url:",$kelime);
    $kelime = str_replace("http://","url:",$kelime);
    $kelime = str_replace("href=","href=http://vildansalgar.com.tr ref=",$kelime);
    return $kelime;
    }
    daha önce php4-5 zamanında yukarıdaki gibi bir fonksiyon kullanmışım.
    ayrıca netde
    $username = mysql_real_escape_string($_POST['username']);
    $password = mysql_real_escape_string($_POST['password']);
    şeklinde bir kullanım gördüm bunlar yeterli mi sizce ?
    hocam ek olarak strip_tags(); kullanınız.
    $username = mysql_real_escape_string(strip_tags($_POST['username']));
  • 03-03-2021, 23:13:08
    #5
    herhangi bir veritabanı sınıfı kullanarak hem temiz kod yazar hem de temel güvenlik önlemlerini otomatik almış olursun
    --
    https://github.com/tayfunerbilen/bas...rc/BasicDB.php
    $query = $db->from('user')
    ->where('id', $uid)
    ->first();
  • 05-03-2021, 13:19:50
    #6
    ARkadaşlar
    $mysqli = new mysqli("localhost", "my_user", "my_password", "world");

    $user_mail=$mysqli->real_escape_string(strip_tags($_POST["email"])) ;
    bu şekilde kullanınca sorun kalmadı.