انجمن‌های فارس وب

نسخه کامل: نکات و اصول مهم در برنامه نویسی(1#)
شما در حال بازدید از بایگانی ارسال های انجمن هستید این نسخه کامل نیست : برای مشاهده نسخه کامل اینجا کلیک کنید
نکات و اصول مهم در برنامه نویسی(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).
راه حل:

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

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

مرجع آدرس ها