یک کلاس حرفه ای و امن برای اتصال به دیتابیس

بسم الله الرحمن الرحیم
یه مدت پیش که داشتم رویه یه پروژه شخصی کار میکردم که بیشتر جنبه تست و یاد گیری و تمرین برنامه نویسی بود تصمیم گرفتم که برای اتصالات اسکریپت یه کلاس دیتابیس بنویسم بعدش که کار تموم شد تو چنتا از برنامه هام از این کلاس استفاده کردم و سعی کردم که با وجود این کلاس در هیچ جا از اسکریپت اتصالی به دیتابیس نداشته باشم منظورم استفاده از mysql_connect هست و از هیچ یک از توابع mysql_ استفاده نکنم و تمام توابع مرکزیت تحت یک کلاس داشته باشه امروز هم تصمیم گرفتم کلاس رو یکم ویرایش کنم و فایل های config و یه سری فایل دیگه و چنتا سمپل هم نوشتم که به کلاس اضافه کنم و اماده انتشار عمومه بشه

پس دانلود کنید و نظر خودتون رو بدین

همکاری و تلاش برای حرفه ای تر و امن تر کردن کلاس »»

ماشالله این فورم هیچی نداشته باشه برنامه نویس حرفه ای PHP فت و فراون داره !
همین جا از همه برنامه نویسای فورم میخام در پیشرفت کلاس کمک کنن تا همیشه یک کلاس آپدیت شده و حرفه ای داشته باشیم ,

این کلاس فعلا 5 تا تابع برای کار با دیتابس داره که بعدا اون ها رو معرفی و نحوه استفاده از اون رو همین جا آموزش میدم آموزش میدم هر کدوم از دوستان که تابع جدید رو برای این کلاس نوشته و به کلاس اظافه کرده ویا تابعی رو اصلاح کرده میتونه همین جا بگه تا در قالب یک ورژن جدید تو همین پست معرفی بشه تا کلاس همیشه اپدیت باشه

و اما همکاری در امنیت این کلاس , میشه گفت مهم ترین عامل در اتصال به دیتابیس امنیت هست برای همین امنیت در این کلاس رو به صورت پلاگین گذاشتم تا هر کی میخاد خیلی راحت برای خودش پلاگین امنیتی درست کنه و استفاده کنه بدون اینکه هسته کلاس رو ویرایش کنه تمام پلاگین های امنیتی در پوشه : security_plugin هست که در صورت برنامه نویسی یک پلاگین جدید باید نام پلاگین رو تو فایل security_plugin/security.php بنویسید | در صورتی که مقدار true باشه پلاگین فعال و در صورتی که false باشه پلاگین خاموش خواهد بود .

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

امکانات و ویژگی ها »»

»» شی گرا ( OOP ) هست
»» قابلیت برنامه نویسی و نصب پلاگین های امنیتی
»» کم حجم بودن
»» دارای فایل Config.php
»» خروجی به صورت آرایه ای
»» بدون نیاز به وارد کردن کوری
»» خروجی فقط کوری ( فقط کوری برگشت داده میشه و کوری اجرا نخواهد شد )
»» خروجی کوری به همراه اجرا کوری

اطلاعات دانلود »»

تعداد سمپل ها : 3
تعداد پلاگین های امنیتی : 2
حجم کلاس : 8 کیلوبایت
ورژن : 1.0.0 بتا

اموزش استفاده از کلاس همین جا و در آینده !!






 

پیوست ها

  • DB_Class.zip
    6.7 کیلوبایت · بازدیدها: 63

amir_s

Active Member
دوست من ... کارتون واقعا خوب بود ...
من یه توضیح کوچیک در حد خودم بدم :
استفاده از یه همچین کلاسهایی در برنامه های Php باعث میشه برنامه شما به یک سیستم دیتابیس خاص متکی نباشه و در مواقع لازم با عوض کردن یک فایل کل سیستم دیتابیس شما می تونه مثلا از MySQL به Oracle تغییر پیدا کنه ...


در مورد کلاس شما هم، خیلی عالی بود ... فقط چیزی که هست فکر نمی کنم برنامه نویس های حرفه ای بخوان ساخت Query هاشون رو به دست کلاس بدن ... شاید از این نظر یه مقداری محدودیت داشته باشه ... البته خوب ... این هم کار جالبیه ... جای کار زیاد داره ...
موفق باشید.
 

sajadmaz

Member
خوب بود ، به نظر من اگه توی لاین 29 و 30 وقتی میخواد وصل بشه به mysql server
PHP:
$this->conn = mysql_connect( $db_host , $db_user , $db_pass );
mysql_select_db ($db_name);

شرط براش بزاری که اگه نتونست وصل بشه برنامه رو exit کنه و یه پیغامی بده بهتره

4 تا کار اصلی delete,insert,update,select رو هم کامل بزار روی sql injection هنگام ورودی ها کار کن
 

yakoza

Well-Known Member
یه کار دیگه هم میتونستی بکنی که فکر کنم امنتر باشه host,user,... رو private بگیری که امنتر باشه


PHP:
	class dbclass {
	
	private $conn = '';
	public $tp = '';
	private $host=db_host;
	private $user=db_user;
	private $pass=db_pass;
	private $db=db_name;
	public $table_prefix=table_prefix;
	
	private function conect()
	{
		if(function_exists('mysql_connect'))
		{
			$this->conn=mysql_connect($this->host,$this->user,$this->pass) or die("Error");
			mysql_select_db($this->db,$this->conn);
		}else
		{
			// Error	
		}
	}
	
	function get_data ( $Table , $Fields = '' , $limit = 'all' , $limit_to = 0 ) {
		// بعد هرجا که لازم بود کانکت میشدی
		$this->conect();
	
	if (security) {

بازم این نظر من بود دوستان حرفه ای تری هم هستن تو این انجمن
 
آخرین ویرایش:
دوست من ... کارتون واقعا خوب بود ...
من یه توضیح کوچیک در حد خودم بدم :
استفاده از یه همچین کلاسهایی در برنامه های Php باعث میشه برنامه شما به یک سیستم دیتابیس خاص متکی نباشه و در مواقع لازم با عوض کردن یک فایل کل سیستم دیتابیس شما می تونه مثلا از MySQL به Oracle تغییر پیدا کنه ...


در مورد کلاس شما هم، خیلی عالی بود ... فقط چیزی که هست فکر نمی کنم برنامه نویس های حرفه ای بخوان ساخت Query هاشون رو به دست کلاس بدن ... شاید از این نظر یه مقداری محدودیت داشته باشه ... البته خوب ... این هم کار جالبیه ... جای کار زیاد داره ...
موفق باشید.

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

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

جدیدترین ارسال ها

بالا