1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

10نکته و اصل مهم در برنامه نویسی پی اچ پی

شروع موضوع توسط minaaa ‏29/1/11 در انجمن PHP

  1. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    1- هرگز فایل های ضمیمه شده رو با پسوند inc. ذخیره نکنید! یعنی
    name.class.inc رو به name.class.php تغییر بدید. و یا از .HTAccess برای
    سطح دسترسی inc. استفاده کنید.
    ۲-
    حتاًالمکان تگ های اضافی و فضا های خالی را حذف کنید و از باز و بسته کردن
    بیش از حد تگهای سرور (<?php ?> <? ?> <?= ?>) خودداری
    کنید. در عمل تفاوتی ندارند ولی در حجم و سرعت، به ازای هر ۱ کاراکتر اضافی
    ۱ بایت حجم فایل و صفحه و Loading میبره بالا(مخصوصاً در پروژه های
    سنگین)!
    ۳-کلاس های خود را با
    قرار دادن ; کامل ببندید و کلاس را با Final و Initialize/__construct شروع
    کنید تا Clone نشوند:
    کد PHP:
    <code style="white-space: nowrap;"> <code>
    final class Name
    **
    final public function
    __construct()
    **
    #…
    }
    };

    </code> </code>

    4- برای Escape کردن کاراکترهای ویژه و جلوگیری از خیلی
    از حملات SQL
    از دستورات زیر استفاده کنید:
    کد
    PHP:
    <code style="white-space: nowrap;"> <code> get_magic_quotes_gpc ? $Str_Input= @stripslashes($Str_Input) : $Str_Input= @addslashes($Str_Input); if(
    function_exists(‘mysql_real_escape_string’)): @mysql_real_escape_string($Str_Input);
    else: @
    mysql_escape_string($Str_Input);

    </code> </code>



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


    کد PHP:
    <code style="white-space: nowrap;"> <code> final public function __clone()
    **
    return(@exit(
    ‘Cloning is not allowed.));
    }

    </code> </code>



    6-هرگز از Cookie/Session برای ذخیره
    کلمه رمز یا مقادیر نمایشی استفاده نکنید(قابل تغییر هستند). خیلی ها از
    جمله … این مورد رو در نرم افزارشون رعایت نمی کنند و بارها آسیب های جدی و
    پیش پا افتاده ای رو متحمل میشن.
    ۷-در
    خط اول هر فایل PHP، بعد از خطا زدایی کامل صفحه، دستور
    (error_reporting(E_ALL@ را قرار بدید که تمامی خطا ها و هشدار ها رو نمایش
    بده. تا از سو استفاده های احتمالی جلوگیری بشه.
    ۸-حتاًامکان از دستور GET_$ برای دریافت مقادیر
    استفاده نکنید. و به جاش از دستور REQUEST_$ استفاده کنید(مقدارش رو هم
    ***** کنید).

    مقادیر متد GET_$، براحتی قابل Sniff و Steal
    هستند
    . همچنین ظرفیت این متد حداکثر ۱۰۰ کاراکتر هستش و تمام
    پارامترهای URL رو هم نوار آدرس مرورگر در معرض دید میزاره.

    ولی متد REQUEST_$، هیچ کدوم از این ضعف ها رو نداره و قدرت پیمایشش هم
    بیشتره.

    اینم یه مثال ساده برای معتبر سازیش:

    کد PHP:
    <code style="white-space: nowrap;"> <code> $Int_Identity= (int)@preg_replace(/[^0-9]/i’, , $_REQUEST['Id']);

    </code> </code>



    9- حتماً تمامی دستورات Exit و Die
    رو با Ignore کردن خطا @ و بستن محتوا استفاده کنید:

    کد PHP:
    <code style="white-space: nowrap;"> <code> @exit(); یا @die();

    </code> </code>



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

    کد PHP:
    <code style="white-space: nowrap;"> <code> if(!extension_loaded(’standard’)): @exit(‘Extension Standard not loaded!);
    elseif(!
    extension_loaded(‘mysql’)): @exit(‘Extension MySQL not loaded!);
    elseif(!
    class_exists(‘ClassName’)): @exit(‘Class ClassName not exists!);
    endif;

    if(function_exists(‘mysql_real_escape_string’)): @mysql_real_escape_string();
    else: @
    mysql_escape_string();
    endif;
    </code></code>