نقل قول نوشته اصلی توسط Rezash نمایش پست ها
در مورد SQL INJECTION :
در آخرين فايلي كه براي دانلود گذاشتم :
فايل config.php رو ببينيد :
کد PHP:
function safe$value ){
$value         trim$value );
$value         mysql_real_escape_string$value );
$value        htmlspecialchars($value);
$value        strip_tags($value);
$value         str_replace(array("<",">","'","ی","&amp;","ۜ"),array("&lt;","&gt;","'","ي","&","ي"),$value);
return 
$value;
}
function 
autosafe(&$value,$key){
$value safe($value);
return 
$value;
}
array_walk($_POST,'autosafe');
array_walk($_GET,'autosafe');
array_walk($_COOKIE,'autosafe');
array_walk($_SESSION,'autosafe'); 
تابع safe:
ابتدا مقدار ورودي رو trim مي كنيم يعني فضاهاي خالي اول و آخرش رو حذف مي كنيم
mysql_real_escape_string : يك تابع فوق العاده سودمند براي حذف كاراكتر هاي ناخواسته و آماده سازي رشته ورودي براي استفاده در يك كوئري به صورت سالم . مثلا كاراكترهاي \x00, \n, \r, \, ', " and \x1a فيلتر ميشوند.
PHP: mysql_real_escape_string - Manual
htmlspecialchars
تبديل كاراكترهاي html :
مثال :

* '&' (ampersand) becomes '&amp;'
* '"' (double quote) becomes '&quot;' when ENT_NOQUOTES is not set.
* ''' (single quote) becomes ''' only when ENT_QUOTES is set.
* '<' (less than) becomes '&lt;'
* '>' (greater than) becomes '&gt;'
PHP: htmlspecialchars - Manual
strip_tags :
حذف تگ ها ، مثلا تگ اسكريپت و ...
PHP: strip_tags - Manual
تابع autosafe :
تابعي دست نويس براي اجراي خودكار تابع safe روي متغير هاي ورودي . اگر از نحوه كاركرد اين تابع و تابع بعدي يعني array_walk اطلاع نداريد توصيه ميكنم "آرايه ها در php" رو كه قبلا در همين انجمن نوشتم مطالعه كنيد.
-
جلوگيري و مقابله با جعل سشن :
کد PHP:
$client =  md5($_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT'].$_SERVER['SERVER_NAME']);
        
$_SESSION['client'] = $client
يك راه كاملا ساده !
در كد بالا من تركيبي از آي پي كاربر ، مشخصات مرورگر كاربر و آدرس سايت رو در يك رشته تركيب و md5 كردم و داخل يك سشن ريختم
حالا در صفحات لوگين بايد چك كنم :
کد PHP:
$client =  md5($_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT'].$_SERVER['SERVER_NAME']);
if(
$client != $_SESSION['client'])
    die(
"Dear User ! Your Login session expired,please re login"); 
با اينكار حتي اگه سشن يك يوزر جعل و د.زديده بشه باز هم هويتش جعل نميشه.
سعي كردم خلاصه بگم و بيشتر توابع رو php.ini ارجاع مي دم به دو دليل : 1. شلوغ نشدن غير ضروري تاپيك 2. درك سايت فوق العاده مفيد php.net
منتظر ادامه آموزش ها باشيد

سلام دوست عزیز

لطفا هشدار سایت php رو برای تابع mysql_real_escape_string جدی بگیرید

Caution Security: the default character set

The character set must be set either at the server level, or with the API function mysql_set_charset() for it to affect mysql_real_escape_string(). See the concepts section on character sets for more information.
قبل از ست کردن charset لطفا ازین تابع استفاده نکنید