PDA

View Full Version : درخواست Function فیلتر مانند برای جلوگیری از Sql Injection {پی اچ پی}



iAmirZ
جمعه 31 مرداد 1393, 17:14 عصر
درود

بنده به یک فانکشن نیاز دارم که ورودی های POST کاربر را ازش عبور بدم و اگه کد SQL یا هر کد مخرب دیگه ای توش یافت شد فیلتر کنه

ارتباط هم از نوع new mysqli هست

ممنون

arash691
جمعه 31 مرداد 1393, 17:57 عصر
از تابع real_escape_string مربوط به mysqli استفاده کن ...

iAmirZ
جمعه 31 مرداد 1393, 19:15 عصر
مطمعنید همین یک تابع کافی هست ؟
۱۰۰ ٪ می خیالم از بابت Sql Injection‌ راحت باشه ؟

arash691
جمعه 31 مرداد 1393, 19:22 عصر
نه هیچ صددرصدی تو امنیت وجود نداره ... اینجا رو بخون


http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php

iAmirZ
جمعه 31 مرداد 1393, 19:23 عصر
من وقتی ازش توی لوکال استفاده می کنم هیچی بر نمی گردونه

omidabedi
جمعه 31 مرداد 1393, 19:36 عصر
دیگه توابع مربوط به اینکار deprecated شده و پشتیبانی نمیشه در php5.3
بهتره از mysqli و بهتر اینکه از PDO استفاده کنید

saeed-71
جمعه 31 مرداد 1393, 19:46 عصر
شما از pdo استفاده خیالتم اسودست.
یادگیریشم سخت نیست.

Mori Bone
جمعه 31 مرداد 1393, 19:50 عصر
از pdo استفاده کن دگ نمی خواد از تابع عبور بدی خودش یه prepare داره و بس

iAmirZ
شنبه 01 شهریور 1393, 13:26 عصر
ممنون از دوستان
ولی الان دیگه خیلی دیر هست
اگه بخوام به PDO تبدیل کنم باید قسمت عظیمی از کد را تغییر بدم
راه دیگه وجود داره؟
تابع mysql_real_escape_string برای من کار نمی ده اخه :|

arash691
شنبه 01 شهریور 1393, 13:28 عصر
از شی mysqli که تعریف کردی متد real_escape_string رو فراخوانی بکن ... اینی که گفتی مربوط به mysql هستش نه mysqli

Mori Bone
شنبه 01 شهریور 1393, 13:28 عصر
تابع mysql_real_escape_string برای من کار نمی ده اخه :|
یعنی چی؟ مشکل چیه؟

hamedarian2009
شنبه 01 شهریور 1393, 14:03 عصر
آقا آرش تو پست اول گفتن دیگه دقت کن ازین تابع mysqli_real_escape_string (http://ir2.php.net/manual/en/mysqli.real-escape-string.php) استفاده کن

iAmirZ
شنبه 01 شهریور 1393, 14:06 عصر
یعنی چی؟ مشکل چیه؟

مثلا به این صورت که قرار بدم



function clean($str) {
$clean = mysql_real_escape_string($str);
return $clean;
}
echo $clean($_POST['test']);


چیزی را echo نمی کنه
سفید :|

arash691
شنبه 01 شهریور 1393, 14:09 عصر
دوست عزیز شما از کدوم روش برای اتصال به db دارید استفاده میکنید ؟ mysql یا mysqli ؟

نمونه کد :


<?php
$con = new mysqli('localhost','root','','db_name');
$field = $con->real_escape_string($_POST['name']);
$result = $con->query("SELECT * FROM `tbl_name` WHERE `name` = '{$field}' ");
?>

iAmirZ
شنبه 01 شهریور 1393, 14:13 عصر
از شی mysqli که تعریف کردی متد real_escape_string رو فراخوانی بکن ... اینی که گفتی مربوط به mysql هستش نه mysqli

ممنون با گفته شما درست شد :x
پستتون را ندیده بودم