Php'de Sql injection'dan nasıl korunurum?

2

Php'de aşağıdaki gibi bir kod yazdığımda, kullanıcı verisini doğrudan Sql sorgusunun içine yerleştirdiğimde, Sql Injection'a maruz kalacağım.

$guvensiz_veri = $_POST['kullanici_verisi];

mysql_soru("INSERT INTO tablo (kolon) VALUES ('" . $guvensiz_veri . "')");

kullanıcıdan veri aldığım yere kullanıcı aşağıdaki gibi bir kod yazarsa

değer'); DROP TABLE tablo;--, 

Sql sorgusu şu şekilde değişecek

INSERT INTO tablo (kolon) VALUES('değer'); DROP TABLE tablo;--')

Bu gibi bir durumda Php'de sql Injection'dan korunmak için ne yapmalıyım?

cemphp cemphp (651)
7 yıl önce sordu

    Toplam 2 Cevap


    1

    Php'de Sql Injection dan korunmak için

    Hazırlanmış ifadeler ve parametreli sorgular kullanın.

    Temel olarak iki seçeneğiniz var

    1. PDO kullanarak
      $stmt = $pdo->prepare('SELECT * FROM Kisiler WHERE Ad = :ad');
      
      $stmt->execute(array(':ad' => $ad));
      
      foreach ($stmt as $row) {
          //  $row ile bir şeyler yap.
      }
    2. mysqli kullanarak
      $stmt = $dbConnection->prepare('SELECT * FROM Kisiler WHERE Ad = ?');
      $stmt->bind_param('s', $ad);
      
      $stmt->execute();
      
      $sonuc = $stmt->get_result();
      while ($row = $sonuc->fetch_assoc()) {
          //  $row ile bir şeyler yap.
      }

    cemphp cemphp (651)
    7 yıl önce cevaplandı

      1

      $guvensiz_veri = addslashes($_POST['kullanici_verisi]);
      

      mysql_ söz dizimlerini kullanarak yazıyorsan direk addslashes fonksiyonunuda kullanabilirsin.

      '" gibi özel karakterlerin başına / koyar mysql kayıt ederkende eklediği / ları siler temiz bir kayıt olur.

      aykutaslan aykutaslan (11)
      7 yıl önce cevaplandı

        üyelik gerektirir

        Cevap yazabilmek için üye girişi yapmalısınız.

        Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
        uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol