تبلیغات در پرشین تولز

PDA

View Full Version : نکات و اصول مهم در برنامه نویسی(1#)


Y.P.Y
12-13-2008, 01:05 PM
نکات و اصول مهم در برنامه نویسی(1#):

1- هرگز فایل های ضمیمه شده رو با پسوند inc. ذخیره نکنید! یعنی name.class.inc رو به name.class.php تغییر بدید. و یا از .HTAccess برای تعیین سطح دسترسی inc. استفاده کنید.
<FilesMatch "\.(htaccess|inc)$">
Order Allow,Deny
Allow from localhost
Allow from 127.0.0.1
Deny from all
</FilesMatch>

2- حتاًالمکان تگ های اضافی و فضا های خالی را حذف کنید و از باز و بسته کردن بیش از حد تگهای سرور خودداری کنید(مخصوصاً در پروژه های سنگین).

3- کلاس را با __construct یا نام کلاس شروع کنید و با __destruct پایان دهید. اگر هم از ارث بری کلاس استفاده نمی کنید، کلاس و توابع را با کلمه کلیدی final آغاز کنید.

class MyClass
{
public function __construct()
{
# Codes...
}
}

class MyClass
{
public function MyClass()
{
# Codes...
}
}

final class MyClass
{
final public function MyClass()
{
# Codes...
}

final private function MyFunction()
{
# Codes...
}
}


4- برای Escape کردن کاراکترهای ویژه و جلوگیری از خیلی از حملات SQL از تابع زیر استفاده کنید:

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);
}


5- اگر از Object cloning استفاده نمی کنید، در کلاس خود از تابع پیش فرض clone__ برای جلوگیری از تقلید(Clone)(شبیه سازی) توابع استفاده کنید:

class MyClass
{
final public function __clone()
{
exit;
}
}


6- هرگز از Cookie برای ذخیره کلمه رمز یا مقادیر نمایشی استفاده نکنید(قابل تغییر هستند).

7- در خط اول هر فایل PHP، بعد از خطا زدایی کامل صفحه، دستور (error_reporting(0 را قرار بدید که تمامی خطا ها و هشدار ها ignore بشن. تا از سو استفاده های احتمالی جلوگیری بشه.

8- حتاًامکان از دستور GET_$ برای دریافت مقادیر استفاده نکنید. دستور REQUEST_$ را جایگزینش کنید(مقادیر ورودی رو هم فیلتر کنید): Request شامل GET, POST, Cookie می باشد.

10- در اول هر کلاس و تابع حتماً وجود و بودن کلاس و تابع رو چک کنید!

if(!extension_loaded('mysql')): exit('Extension MySQL not loaded.');
endif;
...
if(function_exists('mysql_real_escape_string')): mysql_real_escape_string(...);
else: mysql_escape_string(...);
endif;
...


11- هرگز از روش زیر برای آدرس دهی(Action) استفاده نکنید:

<form name="Frm_Test" action="<?= $_Server['PHP_Self'] ?>" method="post" target="_self">
...
</form>

چراکه قابل تغییر و دستکاری هستند(برای حملات (XSS(Cross Side Scripting).
راه حل:

$_PHPSelf= basename(__file__);
$_Server['PHP_Self']= substr(&$_Server['PHP_Self'], 0, strpos(&$_Server['PHP_Self'], &$_PHPSelf)) . $_PHPSelf;

در مقاله بعدی تعداد دیگه ای از این نکات و اصول مهم رو می نویسم(سطح متوسط).
موفق باشید.

Peter Pro
09-07-2009, 12:38 AM
دوست عزيز عالي بود،‌ سپاسگزارم.