سلام روزتون بخیر
خب بی مقدمه بریم سراغ اموزش: آموزش بستن باگ SQL injection در PHP : اول بپردازیم به این که این باک ها چجوری ایجاد میشن . ببینید در بحث واکشی از پایگاه داده ما از طریق دستورات PHP یه Query جاری میکنیم تا اطلاعات مارو از دیتابیس بخونه برای مثال :
SELECT * FROM content WHERE title='ParnianData'
در این کوئری ما درخواست کردیم تا هرچی ستون هست رو جایی که تایتل ما ParnianData هست انتخاب کن . خوب اگه ورودی های ما امن نباشه هکر میتونه یه سری دستورات دیگه به این کوئری ما تزریق کنه . برای مثال :
SELECT * FROM content WHERE title=$_GET['title']
ما خواستیم هرچیزی که در مقدار title هست جستجو بشه در حقیقت هرچیزی در آدرس بار در مقدار title هست داخل دیتابیس سرچ بشه به این صورت :
localhost/post.php?title=ParnianData
حالا برای خراب کردن این کوئری کافیه یدونه ' در آخر آدرس بار وارد کنیم .
localhost/post.php?title=ParnianData'
جالا کوئری جاری میشه :
SELECT * FROM content WHERE title=$_GET['title']'
و اروری نشون میده مبنی بر این که کوئری سالم نیست . و از این طریق هکر میفهمه که ورودی های ما امن نیست و میشه دستورات رو تزریق کرد . خوب حالا هکر میاد از طریق دستورات ORDER BY , Union Select تعداد ستون ها و ردیف های مارو از دیتابیس میخونه و شروع میکنه به بیرون کشیدن نام جدول هامون . و سپس کوئری مورد نظر خودش رو تزریق میکنه تا به رمز و یوزر مدیریت سایت برسه و یا محتوایی رو روی وبسایت اضافه یا کم کنه . برای جلوگیری از این نوع حملات چند تا راه داریم که یکیش امن کردن ورودی های ماست . ما میتونیم از توابع موجود زیادی در PHP برای امن کردن ورودی ها استفاده کنیم . به عنوان مثال : filter_var str_replace mysql_real_scape_string . . . ما توی این جلسه قصد داریم با مورد سوم کار کنیم . برای شروع کار ما باید ورودی رو داخل یه متغیر بریزیم :
$title = $_GET['title']
حالا امن کنیم :
$title = mysql_real_scape_string($_GET['title'])
در این صورت ورودی ما بصورت استرینگ های قابل قبول برای Mysql تعریف میشه و اگه کاراکتر غیر مجاز یا کوئری دیگه ای بخوایم جاری کنیم تبدیل میشه به یه چیز نا مفهوم . و حالا متغیر تایتل رو در کوئری مورد نظر جایگذین میکنیم :
$title = mysql_real_scape_string($_GET['title']) SELECT * FROM content WHERE title='$title'
به این صورت ورودی ما امن شد .
خوشحال میشم در صورت بازدید از این تایپک تشکر کنید.