تالار گفتمان nCIS.ir

نسخه‌ی کامل: sql injection
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام
این سوال هم ب بخش امنیت در php مربوط میشه و هم به بخش دیتابیس.
ولی ب نظر من ب بخش دیتابیس زیاد تر ربط داره به همین خاطر تو این بخش میپرسم.
در مورد دستورات sql injection باید خیلی مراقب ورودی باشیم و همین طوری که از ورودی تحویل گرفتیم مستقم سر دیتابیس نبریم.

اول اینکه از تابع mysql_escape_string() یا pdo ساتفاده کنیم.

دوم اینکه همیشه در جستجو مثل روش زیر از '' استفاده کنیم.
$id=$_GET['id'];
$res=$pdo->prepare("SELECT * from `one` where `id`='$id' ");

سوم اینکه
اگه ورودی مد نظرمان عددی است حتما از تابع زیر استفاده کنیم تا خیالمات راحت شود.
intval

اگه میشه روش های دیگرو هم دوستان معرفی کنن تا اطلاعاتمان کاملتر شود.
خیلی ممنون
در این روش pdo من چطوری میتونم از '' استفاده کنم.
$id=$_GET['id'];
$res=$pdo->prepare("SELECT * from `one` where `id`=:id ");
$res->execute(array(':id'=>$id));
$re=$res->fetchAll(pdo::FETCH_ASSOC);
من تو جایی میخوندم که تو دستور where حتما باید از '' استفاده کنیم.
مرسی
نیازی نیست. خودش کوتیشن رو اضافه میکنه.