انتشار نسخهء 2.6 سیستم رجیستر و لاگین

دانلود: دانلود

اخیرا وقت کردم دوباره مدتی روی این پروژه کار کردم. هدف، ارتقا اون به یک سطح بالاتر بود از نظر استانداردهای کدنویسی، راحتی و سازگاری بیشتر در ترکیب با برنامه های دیگر، افزایش امنیت، اضافه کردن یکسری امکانات…

بهبودها و امکانات اضافه شده تاحالا:

- autoloading کلاسها.

- autoloading توابع!!

- autoloading متغییرهای کانفیگ.

این autoloading ها هم باعث راحتی و سرعت در کدنویسی میشه و هم نیاز به اینکلودها در کد رو از بین میبره که این باعث کاهش کدها و افزایش خوانایی و پرهیز از باگهایی میشه که بر اثر اینکلود نشدن بعضی از این موارد در بعضی بخشها و منطق برنامه ممکنه پیش بیان.

- تمام متغییرهای سشن برنامه رو تحت یک آرایه بنام reg8log در سشن بردم که اگر متغییرهای دیگری غیر از متغییرهای این برنامه در سشن وجود داشتن یا وارد شدن، بیشتر مستقل و بدون تداخل و مشکل باشن.

- توکن امنیتی csrf رو که قبلا توی کوکی ذخیره کرده بودم به داخل سشن بردم. اینطوری امنیتش بالاتر میره بخصوص که امنیت کوکی در سابدامین ها مخدوش بود.

- الگوریتم هش پسورد برنامه الان bcrypt شده که الگوریتم استاندارد و حرفه ای مخصوص هش پسورده.

- امکانات کاملی برای error logging به برنامه اضافه شده که هیچ خطایی در سطح PHP از زیر دست در نره و بشه باگهای احتمالی برنامه یا مسائل دیگر رو هر زمان با مراجعه به گزارش خطاها تشخیص داد.

- یک بهبودهایی در استانداردهای کدنویسی انجام دادم. مثلا بجای کیورد global از آرایهء GLOBALS استفاده کردم چون به این شکل خوانایی بالا میره. یکسری از موارد استفاده از @ رو هم حذف کردم.

- تمام عملگرهای مقایسه ای رو که ممکن بود به انواع strict تر اونا تغییر دادم که از رفتارهای غیرمنتظره PHP در این زمینه که بین زبانهای برنامه نویسی هم استثناء و خیلی عجیب و دردسرسازه جلوگیری بشه و باگ و حفرهء امنیتی به این خاطر در برنامه بوجود نیاد. یعنی تمام == ها رو که میشد به === و ‎!=‎ رو به ‎!==‎ تغییر دادم؛ همچنین است فعال کردن پارامتر strict در تابع in_array. جالب اینکه در همین حین متوجه شدم نگرانیم بی مورد نبوده و یک باگ SQL Injection دقیقا بخاطر همین رفتارهای دردسرساز PHP در برنامه وجود داشته (اما حالا رفع شده).

- یک امکانی برای ایجاد فله ای اکانتهای ساختگی در سیستم هم اضافه کردم که برای تست و دیباگ چیزهایی مثل pagination میتونه مفید باشه (این فقط در حالت دیباگ کار میکنه و باید بعنوان ادمین هم لاگین باشید).

- موارد جزیی و درونی بیشتری هم بوده که دیگه گفتن نداره و خودم هم همش رو الان حضور ذهن ندارم که بگم!

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

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>