جلوگیری از اینجکشن در گرفتن کوئری هنگام فیلتر

پرسیده شده
فعالیت 1148 روز پیش
دیده شده 458 بار
0

سلام

موقعی که در url مقداری رو دریافت می کنیم و از اون برای فیلتر کردن مثلا محصولات در دستور SELECT استفاده میشه چطور باید از اینجکت دستور در وسط دستوراتمون جلوگیری کنیم؟

 

$keyword = $_POST['search']; 
$query   = "SELECT * FROM products where product_title LIKE '%$keyword%'";

اینجا اگه کلاینت یک دستوری رو تحت POST وارد کنه می تونه به برخی اطلاعات دیتابیس دسترسی داشته باشه
امنیت رو چطور باید تامین کنیم؟

 

فایل پیوست

2
حذف شده

سلام و احترام

اگه از همون pdo استفاده کنید برای query زدن مشکلی برای sql injection نخواهیم داشت، شما توی query بالا مقادیر رو به شکل مستقیم داخل query گذاشتید که میتونه مشکل ساز باشه

	$conn = new PDO('mysql:host=localhost;dbname=test_db',$user,$password);
		$query = "SELECT * FROM `test_table` WHERE `name` like :name";
		$stmt = $conn->prepare($query);
		$stmt->bindParam(':name',$name);
		$stmt->execute();
		$stmt->setFetchMode(PDO::FETCH_ASSOC);
		$data = $stmt->fetchALl();
فایل پیوست

امیر صالحی

توسط

امیر صالحی

24 اسفند 99