پشتیبانی: 09131253620
ارتباط با ما
تلگرام: 09131253620

برجسته ترین ها
گروه های مقاله ها
HyperLink


بررسی اصول امنیتی پایگاه های داده بخش آخر تاریخ درج: ١٣٩۵/٠۴/٢٠

  دسنرسی به sp_insert برای نقش برنامهemployeeغیر مجاز است

شکل 5-7 : دسترسی به sp_insert برای نقش برنامه‌ای employee غیر مجاز است
برای اینکه دریابیم در صورتی که این کاربر این رویه را انجام دهد چه پیغامی از سمت SQLServer صادر می شود ، باید خطوطی از کدهای برنامه را که چنین عملی را انجام می‌دهند را خارج از بلوک try & catch قرار داد. هنگامی که کاربر اقدام به وارد کردن داده در پایگاه داده می‌کند با استثنایی مواجه می‌شود و پیغامی مانند شکل 5-8 صادر می‌شود. 
نمونه ایی از پیغام خطلا صادر شده از SQLServera 
شكل 5-8 :نمونه اي از پيغام خطاي صادر شده از SQLServer
پس از مشاهده پیغام خطا ، باید به نحوی خطوط کد برنامه را در بلوک‌های try & catch قرار داد تا در صورت بروز استثنا روال طبیعی برنامه دنبال شود و پیغام قابل درک برای کارب ارسال شود. 
به کدهای زیر توجه شود :
public void insert(String spName)
        {
            try
            {
                cmd_insert = frm_begin.con.CreateCommand();
                cmd_insert.CommandType = CommandType.StoredProcedure;
                cmd_insert.CommandText = spName;
                cmd_insert.Parameters.Add("@Id", SqlDbType.Text).Value = txt_id.Text;
                cmd_insert.Parameters.Add("@fname", SqlDbType.VarChar).Value = txt_fname.Text;
                cmd_insert.Parameters.Add("@lname", SqlDbType.VarChar).Value = txt_lname.Text;
                cmd_insert.Parameters.Add("@mobile", SqlDbType.VarChar).Value = txt_mob.Text;
                cmd_insert.Parameters.Add("@field", SqlDbType.VarChar).Value = combo_field.Text;
                cmd_insert.Parameters.Add("@position", SqlDbType.VarChar).Value = combo_position.Text;
                cmd_insert.Parameters.Add("@madrak", SqlDbType.VarChar).Value = combo_madrak.Text;
                cmd_insert.Parameters.Add("@address", SqlDbType.VarChar).Value = txt_add.Text;
                cmd_insert.Parameters.Add("@email", SqlDbType.VarChar).Value = txt_email.Text;
            
                cmd_insert.ExecuteNonQuery();
            }
            catch(Exception ex)
            {
                if (ex.Message.Contains("EXECUTE permission denied on object 'sp_insert', database 'db_systemactivity', schema 'dbo'.")) 
                    MessageBox.Show("شما مجاز به وارد کردن اطلاعات در پایگاه داده نیستید. برای اطلاعات بیشتر با مدیر پایگاه داده تماس بگیرید.", "خطا",                      MessageBoxButtons.OK,MessageBoxIcon.Error);
     }
پیغامی که کاربر مشاهده می کند همانند شکل 5-9 است.
نمونه ایی از پیغام صادر شده توسط برنامه نویس 
شكل 5-9 : نمونه اي از پيغام صادر شده توسط برنامه نويس
ممکن است تعدادی از این استثناها در مرحله نخست در نظر گرفته نشده باشند ولی در طی زمان در صورت مواجه شدن با هر یک از آنها می توان روالی مانند آنچه در که در بالا گفته شد در پیش گرفته شود. پس گذشت مدت آزمایشی بارفع شدن این خطاها کیفیت اجرایی برنامه بالا می رود.
5-7  جمع بندی 
برای برقراری امنیت برنامه هنگام اتصال به SQLServer باید اعمال زیر انجام شود :
1. ایجاد نقش برنامه ای با سطح دسترسی مناسب 
2. اجرای رویه ذخیره شده sp_setapprole از داخل کد برنامه و محصور کردن ارتباط مورد نظر
تعریف دقیق سطوح دسترسی مهم ترین امر در ایجاد امنیت می باشد. مدیریت استثناها یک مساله مهم در بالا بردن قدرت اجرایی برنامه است
نتیجه‌گیری 
 
امنیت یکی از مهمترین مساله دنیا و تکنولوژی روز است. این مساله به قدری حیاتی است که اگر برآورده نشود جامعه صدمات زیادی را متحمل می‌شود. متاسفانه در کشور ایران به مساله امنیت بهای کمی داده می‌شود. بسیاری از برنامه‌های کامپیوتری که توسط شرکت‌های نرم افزاری تهیه می‌شود ، از درجه امنیت پایینی برخوردار هستند. این برنامه‌ها پس از تزریق به بازار تجاری پس از مدتی به علت مشکلات امنیتی که دارند اغلب از رده خارج می‌شوند و در ضمن شرکت‌ها و سازمان‌های دیگر را دچار مشکل می‌کنند.
در سازمان‌هایی که از شبکه‌های کامپیوتری استفاده می‌کنند ، عدم وجود مدیران متخصص در سطح شبکه و سیستم عامل و پایگاه داده باعث ایجاد بسیاری از ناامنی‌ها شده است. اگر مدیرانی در سطح پایگاه داده بانک‌ها موجود نباشد ممکن است سرقت‌های بزرگی از سازمان‌ها انجام شود. سرقت‌ها فقط بصورت مادی نیست. افشای اطلاعات نظامی یک کشور ممکن است منجر به نابودی یک کشور بیانجامد. افشای اطلاعات اقتصادی می‌تواند جامعه را با سرحد فقر پیش ببرد. اکنون جامه ما در حال گذر از یک جامعه سنتی و تبدیل شدن به یک جامعه کامپیوتری است و همانطور که نیاز به سازمانی برای بررسی کیفیت ساختمان‌ها در برابر زلرله ایجاد شده است نیاز به سازمان‌هایی برای بررسی کیفیت نرم افزار ها نیز امری حیاتی به نظر می‌رسد. راهکارهای زیر برای ایجاد یک جامعهِ امن نرم افزاری ارائه شده است. باشد که لازم لاجرا شوند : 
1. ایجاد سازمانی مانند استاندارد ، برای بررسی کیفیت نرم افزارهایی که قرار است وارد بازار شوند.
2. استفاده از دانشگاه‌ها و مراکز تحقیقاتی برای ارائه راه حل‌هایی در جهت پیشبرد کیفیت نرم افزار و تقویت مولفه‌هایی نظیر امنیت نرم افزار
3. اهمیت دادن سازمان‌ها و مراکزی که از کامپیوتر استفاده می‌کنند به مساله امنیت شبکه‌های کامپیتری و نرم افزارها
4. استفاده از مدیران امنیت مجرب و دانا در سازمان‌ها 
5. انجام تحقیقات بر روی ابزارهای اعمال امنیت بر روی داده نظیر SQLServer و Oracle 
6. انجام تحقیفات بر روی امنیت کلاسیک
7. استفاده از دانش و ابزار روزِ امنیت
8. ایجاد پلیس نرم افزاری برای شناسایی افراد مهاجم به کامپیوترهای سازمان‌ها

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

تگها: اصول امنیتی database   امنیت پایگاه داده   امنیت در SQL Server   امنیت دیتابیس   نمونه اي از پيغام صادر شده توسط برنامه نويس   
 

HyperLink

ارسال نظر در مورد این مطلب
نام :  
آدرس ایمیل :  
متن پیام :  
کد امنیتی :  
   
   
نظری برای نمایش وجود ندارد
 
این مطلب را به اشتراک بگذارید: