folder Tahribat.com Forumları
linefolder Asp - Php - Cgi - Perl
linefolder SQL Injection' Dan Nasıl Kaçabilirim ?



SQL Injection' Dan Nasıl Kaçabilirim ?

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    acan
    acan's avatar
    Banlanmış Üye
    Kayıt Tarihi: 24/Kasım/2015
    Homo
    public function carsFilter($type, $sort_by, $brand, $fuel_type, $transmission, $car_type, $price_range, $build_year_range, $search_key, $between_date) {
    		$sql_search_key = '';
    		if (!empty($search_key)) {
    			$sql_search_key = "AND cars.brand LIKE '%".$search_key."%'";
    		}
    		
    		$sql_brand = '';
    		if (!empty($brand)) {
    			$brands = implode("|", $brand);
    			$sql_brand = "AND cars.brand REGEXP '".$brands."'";
    		}
    		
    		$sql_fuel_type = "";
    		if (!empty($fuel_type)) {
    			$fuel_types = implode("|", $fuel_type);
    			$sql_fuel_type = "AND cars.fuel_type REGEXP '".$fuel_types."'";
    		}
    		
    		$sql_transmission = "";
    		if (!empty($transmission)) {
    			$transmissions = implode("|", $transmission);
    			$sql_transmission = "AND cars.transmission REGEXP '".$transmissions."'";
    		}
    		
    		$sql_car_type = "";
    		if (!empty($car_type)) {
    			$car_types = implode("|", $car_type);
    			$sql_car_type = "AND cars.car_type REGEXP '".$car_type."'";
    		}
    		
    		
    		$sql_between_price = "";
    		if ($price_range != "") {
    			$temp_prices = explode(";", $price_range);
    			$sql_between_price = "AND cars.starting_price BETWEEN '" . $temp_prices[0] . "' AND '" . $temp_prices[1] . "'";
    		}
    		
    		$sql_between_build_year = "";
    		if ($build_year_range != "") {
    			$temp_build_years = explode(";", $build_year_range);
    			$sql_between_build_year = "AND cars.build_year BETWEEN '" . $temp_build_years[0] . "' AND '" . $temp_build_years[1] . "'";
    		}
    		
    		$sql_between_date = "";
    		if ($between_date != "") {
    			$temp_dates = explode(";", $between_date);
    			$first_date = date('Y-m-d H:i:s', strtotime($temp_dates[0] . " 00:00:00"));
    			$last_date = date('Y-m-d H:i:s', strtotime($temp_dates[1] . " 23:59:59"));
    			$sql_between_date = "AND cars.bid_date BETWEEN '" . $first_date . "' AND '" . $last_date . "'";
    		}
    		
    		$sql = "SELECT car_images.filename, car_images.ext, cars.ihaleden_id, cars.brand, cars.model, cars.plate, cars.transmission, cars.fuel_type, cars.city, cars.district, 
    				cars.build_year, cars.starting_price, DATE_FORMAT(bid_date, '%d.%m.%Y %H:%i') AS bid_date, cars.bid_url FROM cars
    				LEFT JOIN car_images ON cars.preview_image_id = car_images.id 
    				WHERE cars.type = ? AND cars.bid_date >= NOW() AND cars.ad_state = ? AND cars.starting_price > 0 
    						". $sql_search_key ." 
    						". $sql_brand ." 
    						". $sql_fuel_type ." 
    						". $sql_transmission ." 
    						". $sql_car_type ." 
    						". $sql_between_price." 
    						". $sql_between_build_year." 
    						". $sql_between_date ."
    						ORDER BY " . $sort_by . " ASC";
    		$query = $this->db->prepare($sql);
    		$query->execute(array($type, "1"));
    		if ($query->rowCount() > 0) 
    			return $query->fetchAll();
    		return false;
    	}

     

    Böyle bir arama fonksiyonu yazdım fakat parametreleri prepare metoduna sokamadım. Çünkü ne geleceğini, kaç tane geleceğini bilmiyorum

    Hal böyle olunca da sql injection' a açık oldu sanki :/

    Nasıl önüne geçebilirim ?


    Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ozdemyr
    ozdemyr's avatar
    Kayıt Tarihi: 21/Haziran/2015
    Erkek

    Parametreleri execute içine array() ile değil bindParam ile teker teker verin PDO'ya. SQL sorgusu koşullara göre değişecekse bindParam'ları da aynı koşullara uygun hale getirmelisiniz.

    Örneğin

    if (!empty($search_key)) {
    	$sql_search_key = "AND cars.brand LIKE '%".$search_key."%'";
    }
    
    $sql = "SELECT car_images.filename, car_images.ext, cars.ihaleden_id, cars.brand, cars.model, cars.plate, cars.transmission, cars.fuel_type, cars.city, cars.district, 
    				cars.build_year, cars.starting_price, DATE_FORMAT(bid_date, '%d.%m.%Y %H:%i') AS bid_date, cars.bid_url FROM cars
    				LEFT JOIN car_images ON cars.preview_image_id = car_images.id 
    				WHERE cars.type = ? AND cars.bid_date >= NOW() AND cars.ad_state = ? AND cars.starting_price > 0 
    						" $sql_search_key " 
    						// ..
    						ORDER BY " . $sort_by . " ASC";

    şeklinde bir ifade varsa bunu

    if (!empty($search_key)) {
    	$sql_search_key = "AND cars.brand LIKE ':search_key'";
    }
    
    $sql = ..;
    $query = $this->db->prepare($sql);
    if (!empty($search_key)) {
    	$query->bindParam(':search_key', "%$search_key%", PDO::PARAM_STR);
    }

    şeklinde inşa etmeniz gerekiyor. Bu sayede aynı koşula bağlı olarak hazırlanan sorguya bi parametre dahil etmiş olursunuz.

    Uygulama sürekli bu şekilde karışık sorgular içeriyorsa bi Query Builder lazım.

     

    ozdemyr tarafından 23/Ağu/16 01:17 tarihinde düzenlenmiştir
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    acan
    acan's avatar
    Banlanmış Üye
    Kayıt Tarihi: 24/Kasım/2015
    Homo

    @ozdemyr teşekkür ederim yardımınız için, sadece burada filtreleme mevcut.

    diğer yerlerde de karışık sorgular var ama search olayı yok.


    Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yunusemre
    yunusemre's avatar
    Kayıt Tarihi: 22/Ağustos/2016
    Erkek

    $sql_search_key = "AND cars.brand LIKE ':search_key'";

    Burada kesme işaretine gerek yok,

    $sql_search_key = "AND cars.brand LIKE :search_key";

     

     

    yunusemre tarafından 23/Ağu/16 01:35 tarihinde düzenlenmiştir

    "Programcılar saatler boyunca çalışmak zorunda kalmalarına engel olacak sistemler tasarlamaya saatler boyunca uğraşırlar." David Allen
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    acan
    acan's avatar
    Banlanmış Üye
    Kayıt Tarihi: 24/Kasım/2015
    Homo
    yunusemre bunu yazdı

    $sql_search_key = "AND cars.brand LIKE ':search_key'";

    Burada kesme işaretine gerek yok,

    $sql_search_key = "AND cars.brand LIKE :search_key";

     

     

    +1 teşekkürler :)


    Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım Acanlık yaparım
Toplam Hit: 1320 Toplam Mesaj: 5
sql injection