# زبان های اسکریپتی > PHP > امنیت در PHP >  کد php برای امنیت داده های ورودی

## meysam7972

با سلام آیا  کدی در زبان php وجود داره که بشه روی اطلاعات ورودی قیلتر گذاشت؟

----------


## emadrezvani

چه نوع قیلتری؟

----------


## meysam7972

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

----------


## metal gear solid 4

*Sanitize filters*

----------


## php_programmer021

سلام
دوستان کسی می تونه مثلا برای  امن کردن ورودی های  کاربر با مثال توضیح بده؟
مثلا ورودی که فقط حروف باشه و ورودی های عددی و ایمیل و تصویر و چک باگس و بقیه ورودی ها .
و اینکه چطور ورودی که آدرس یه شخص رو باید فیلتر کرد توی جایی که آدرس برای پست می خوایم بگیریم.
با تشکر

----------


## Yousha

یه سر به تاپیک های این بخش بزن: http://forum.iranphp.org/Forum-%D8%A...B%8C%D8%AA--28

----------


## omidabedi

از تابع filter_var استفاده کن و فیلتر هاشم اونایی هستند که اقای metal gear solid 4

گفتند

و این لینک
http://php.net/manual/en/filter.filters.php

----------


## HRMadani

به نام خدا
درود

شما کافیه فقط کارهای زیر رو انجام بدی :

1- با یه شرط ساده می تونی چک کنی که اطلاعات فرمت دقیقا از سایت خودت رسیده نه از سایت دیگری (جلوگیری از حمله ای معروف به form spoofing)
تکه کد آماده برای این کار : $strs = explode('/', $_SERVER['HTTP_REFERER'] );
if ( strcmp($strs[2] ,$_SERVER['HTTP_HOST'])!=0)
{
header("HTTP/1.1 404 OK");
exit;
}

2- فیلتر کردن ورودی ها بر اساس نوع و حذف کاراکترهای اضافی (برای جلوگیری از حملات SQL Injection)
function sql_injectio_filtering( $value )
{
if( get_magic_quotes_gpc() ) {
$value = stripslashes( $value );
}
//check if this function exists
if( function_exists( "mysql_real_escape_string" ) ) {
$value = mysql_real_escape_string( $value );
}
//for PHP version < 4.3.0 use addslashes
else {
$value = addslashes( $value );
}
return $value;
}

3- فیلتر دو کاراکتر > و < و برای اطمینان بیشتر کاراکترهای ' و " (برای جلوگیری از حملات XSS):

این کار هم به راحتی از طریق تابع htmlentities انجام میشه ولی برای اطمینان بیشتر هم میتونید دستی ورودی هاتون رو فیلتر کنین که این کار هم با تکه کد زیر انجام میشه:
$array = array("<",">","*","~","+","\,",":",";","?","[","/","|","]","^","`","=","$");
    $input = str_replace($array,' ',$input);
 که در آرایه ای که تعریف شده کاراکترهای اضافی فیلتر شده است.

با این کارها تا حد قابل قبولی ورودی ها و فرم هاتون ایمن میشن.
دقت کنید ورودی هاتون هم POST هست و هم GET

----------


## Mori Bone

> با سلام آیا  کدی در زبان php وجود داره که بشه روی اطلاعات ورودی قیلتر گذاشت؟


تو رو خدا جستجو کنید. اینقدر این انجمن رو خراب نکید. چقدر مدیران اخطار بدن. :عصبانی:  تورو به خدا. اینقدر اسپم ندید :خیلی عصبانی:

----------

