PDA

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 عدد هست یا نه؟