View Full Version : سوال: کد برای جلوگیری sql injection و ارسال از یک صفحه به صفحه دیگه
navid3d_69
سه شنبه 07 شهریور 1391, 20:35 عصر
سلام من توی صفحاتم مقدار id رو که عدد هست رو انتقال می دهم با get میخواستم بینم از مقدار Get رو با این کد
preg_replace("/[^0-9]/","", $_GET['id']);
فیلتر کنم دیگه امکان sql injection نیست ؟
navid3d_69
سه شنبه 07 شهریور 1391, 20:40 عصر
این کد بهتر نیست این الان به ذهنم رسید
function onlyint($put) {
$put = preg_replace("/[^0-9]/","", $put);
$put = (int) $put;
return $put;
}
این بهتر هست؟
رضا قربانی
سه شنبه 07 شهریور 1391, 22:04 عصر
همون یه int باید کافی باشه
(int)$_get["id"]
ravand
چهارشنبه 08 شهریور 1391, 07:16 صبح
از تابعis_numeric هم میتونی استفاده کنی.
soroush.r70
چهارشنبه 08 شهریور 1391, 08:11 صبح
function escape1($values) {
if(is_array($values)) {
$values = array_map('escape', $values);
} else {
/* Quote if not integer */
if ( !is_numeric($values) || $values{0} == '0' ) {
$values = "'" .mysql_real_escape_string($values) . "'";
}
}
return $values;
}
ravand
چهارشنبه 08 شهریور 1391, 08:15 صبح
من فکر میکنم نیازی به این همه کد نیست تابع is_numeric خودش همه ی این کارا رو میکنه . میتونید باهاش بررسی کنید که مقدار داده شده به id عدد هست یا نه؟
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.