PDA

View Full Version : فیلتر کردن داده های ورودی در فرم



maysam.m
جمعه 25 تیر 1389, 12:09 عصر
با سلام و خسته نباشید

من میخوام داده های ارسالی برای فرم تعیین اعتبار که دارای دو فیلد یوزو و پس است را فیلتر کنم و مانع ارسال داده های غیر مجاز بشم!
اما مشکلم اینجاست که نمیدونم باید دقیقا از چه کدی||تابعی استفاده کنم! :اشتباه:
برای فیلد یوزر چه کاراکترهایی رو و برای فیلد پسورد چه کاراکترهایی رو فیلتر کرد؟
در گوگل بسیار جستجو کردم و به کدهای مختلفی بر خوردم.


function qry($query) {
$this->dbconnect();
$args = func_get_args();
$query = array_shift($args);
$query = str_replace("?", "%s", $query);
$args = array_map('mysql_real_escape_string', $args);
array_unshift($args,$query);
$query = call_user_func_array('sprintf',$args);
$result = mysql_query($query) or die(mysql_error());
if($result){
return $result;
}else{
$error = "Error";
return $result;
}
}
(دقیقا این تابع چه کار میکند؟ من متوجه نشدم!)


$Username = preg_replace("([^a-z0-9_]*)", '', $Username);

mysql_real_escape_string
htmlspecialchars



ممنون میشم شما بگید باید از ترکیب چه توابعی استفاده کنم؟
خود دوستان از چه کدی استفاده میکنند؟


با تشکر

صابر طهماسبی
جمعه 25 تیر 1389, 12:23 عصر
سلام
روشها مختلف است این روشی که شما فرمودید عبارات منظم نام دارد که برای شروع یادگیری آن می توانید به تاپیک زیر مراجعه کنید(همین تابع preg_match اونجا با مثال هست):

http://barnamenevis.org/forum/showthread.php?t=233318


اما یکسری الگوها از پیش تعریف شده که توسط filter ها در php میتوان از آنها استفاده کرد برای آموزش فیلترها به آدرس زیر مراجعه کنید:

http://www.w3schools.com/php/php_filter.asp

موفق باشید.

maysam.m
جمعه 25 تیر 1389, 12:36 عصر
سلام
روشها مختلف است این روشی که شما فرمودید عبارات منظم نام دارد که برای شروع یادگیری آن می توانید به تاپیک زیر مراجعه کنید(همین تابع preg_match اونجا با مثال هست):

http://barnamenevis.org/forum/showthread.php?t=233318


اما یکسری الگوها از پیش تعریف شده که توسط filter ها در php میتوان از آنها استفاده کرد برای آموزش فیلترها به آدرس زیر مراجعه کنید:

http://www.w3schools.com/php/php_filter.asp

موفق باشید.

سلام
ممنون از توجه شما.
اطلاعات زیادی درباره کاراکترهایی که مشکل امنیتی در فرم ها درست میکنند ندارم.
من دنبال یه تابع هستم که تمام کاراکترهای غیر مجاز (در پایگاه داده) را فیلتر کند و تابع جامعی باشد.
ممنون میشم شما تابعی که خودتون برای فیلتر کاراکترهای غیرمجاز در فرمهاتون استفاده میکنید را اینجا قرار دهید.

ممنون

mohmadd
جمعه 25 تیر 1389, 13:26 عصر
function Safe_SQL($Str_Input)
{

if(get_magic_quotes_gpc()): function_exists('mysql_real_escape_string') ? stripslashes(mysql_real_escape_string(&$Str_Input)) : stripslashes(mysql_escape_string(&$Str_Input));
else: function_exists('mysql_real_escape_string') ? addslashes(mysql_real_escape_string(&$Str_Input)) : addslashes(mysql_escape_string(&$Str_Input));
endif;

return($Str_Input);
}منبع : http://forum.iranphp.org

UnnamE
سه شنبه 26 مرداد 1389, 08:33 صبح
من دنبال یه تابع هستم که تمام کاراکترهای غیر مجاز (در پایگاه داده) را فیلتر کند و تابع جامعی باشد.
هیچ تابع آماده ای نیست که این کار رو کامل انجام بده
اگر هم باشه اطمینان کامل نیست
بهتر خودت یه بستگی به نوع امنیتی که میخوای برقرار کنی تابع رو بنویسی

ممنون میشم شما تابعی که خودتون برای فیلتر کاراکترهای غیرمجاز در فرمهاتون استفاده میکنید را اینجا قرار دهید.
من خودم برای هر قسمت از فرم ها از لوگین گرفته تا جستحو و .... چندین نوع فیلتر دارم که متفاوت هست
در کل باید توابع رو با preg_match و چنتا تابع دستی دیگه داشته باشی که مشکلت رو حل کنی