- حتاًالمکان از تگ ?> به جای php?> استفاده کنید. در عمل تفاوتی
ندارند ولی در حجم، به ازای هر 3 کاراکتر اضافی 3 بایت حجم فایل و صفحه
میبره بالا(مخصوصاً در پروژه های سنگین)!
2- هرگز فایل های ضمیمه شده رو با پسوند inc. ذخیره نکنید! یعنی
name.class.inc رو به name.class.php تغییر بدید.
3- کلاس های خود را با قرار دادن ; کامل ببندید(نقطه ویرگول) و کلاس را با
Initialize یا construct__ شروع کنید: 4- برای رد(Escape) کردن کاراکترهای ویژه و جلوگیری از حملات SQL از
دستورات زیر استفاده کنید:
کد PHP:
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(...);
else: @mysql_escape_string(...);
endif;
5- در کلاس خود از تابع پیش فرض Clone__ برای جلوگیری از
تقلید(Clone)(شبیه سازی) توابع استفاده کنید.
یعنی:
کد PHP:
final public function __clone()
{
return(@exit('Cloning is not allowed.'));
}
6- هرگز از Cookie و Session برای ذخیره کلمه رمز یا مقادیر نمایشی
استفاده نکنید(قابل دستکاری هستند)!
7- در خط اول هر فایل PHP، دستور (error_reporting(E_ALL@ را قرار بدید که
تمامی خطا ها و هشدار ها رو نمایش بده. تا از سو استفاده های احتمالی
جلوگیری بشه.
8- حتاًامکان از دستور Get_$ استفاده نکنید. و به جاش از دستور Post_$ یا
Request_$ استفاده کنید.
9- حتماً تمامی دستورات Exit و Die رو با رد کردن خطا و بستن محتوا استفاده
کنید.
مثلاً:
کد PHP:
@exit(''); یا @die('');
10- در اول هر کلاس و تابع حتماً وجود و بودن کلاس و تابع رو چک کنید!
مثلاً:
$_Server['PHP_Self'] معتبر سازی
11- هرگز از روش زیر برای آدرس دهی(Action) استفاده نکنید:
چراکه کاربر خرابکار(Hacker) میتونه به راحتی فرم رو برای حملات
(XSS(Cross Side Scripting دستکاری کنه و تغییر بده.
راه حل:
کد PHP:
$_PHPSelf= @basename(__File__);
$_Server['PHP_Self]= @substr($_Server['PHP_Self'], 0, @strpos($_Server['PHP_Self], $_PHPSelf)) . $_PHPSelf;
ایمن سازی کلمات رمز
12- برای ایمن سازی کلمات رمز در هنگام ثبت نام(عضویت) یا ورود کاربر،
حتماً یکی از الگوهای رمز گذاری(Hash) را استفاده کنید:
مثال:
کد PHP:
$_Str_Password= $_Post['InpTxt_Password'];
$_Str_SecurePassword= md5($_Str_Password); یا $_Str_SecurePassword= sha1($_Str_Password);
ایمن سازی شرط و شروط ها
13- بهتر و ایمن تره اگر تمامی تگ ها و بلاک هارو کامل مشخص کنید و کامل
ببندید:کد PHP:
if(...): ...
endif;
if(...): ...
else(...): ...
endif;
if(...): ...
elseif(...): ...
else(...): ...
endif;
if(...)
{
...
};
if(...): ...
{
...
}
else
{
...
};
while(...):
endwhile;
while(...)
{
};
for...
foreach...
...
خروجی ها و انعکاس ها
14- بهتر و ایمن تره که به جای:
کد PHP:
echo 'Test ' . $_Test;
و
return 'Test ' . $_Test;
و
<?php echo 'Test ' . $_Test; ?>
این را جایگزین کنید:
کد PHP:
echo((string)'Test ' . $_Test);
و
return((string)'Test ' . $_Test);
و
<?= 'Test ' . $_Test ?>
موفق باشید.
منبع : farsweb.ir