PDA

View Full Version : تامین امنیت پایگاه داده اس کیو ال سرور روی سیستم کلاینت (مشتری)



Mozhdeh.Hemati
چهارشنبه 20 دی 1391, 14:11 عصر
سلام،
من یه نرم افزار حسابداری نوشتم که از پایگاه داده اس کیو ال سرور نسخه اکسپرس 2008 استفاده میکنه؛ حالا مشتری باید روی سیستمش نرم افزار SQL Server Express Engine رو نصب کنه که بتونه از برنامه استفاده کنه. من توی برنامه ام هم به کاربران سطح دسترسی دادم ولی اگه شخص بیاد برنامه SQL Server Managment رو نصب کنه که به پایگاه داده من دسترسی داره و امنیت برنامه میره زیر سوال! برای رفع این مشکل باید چیکار کنم؟

لطفا هر کس میدونه راهنمایی کنه، فکر من دیگه کار نمیکنه.

Mozhdeh.Hemati
چهارشنبه 20 دی 1391, 22:13 عصر
هر راهنمایی کوچیکی میتونه کمکم کنه؛ لطفا نظراتتون رو دریغ نکنید.

programerinfonet
چهارشنبه 20 دی 1391, 22:30 عصر
دوست عزیز اولین کار گذاشتن رمز روی دیتا بیسه
و همچن تعریف کاربر و دادن سطح دسترسی و ...

mousa1992
چهارشنبه 20 دی 1391, 22:52 عصر
اطلاعات رو بصورت کد شده وارد دیتابیس کن و موقع فراخوانی اونا رو دیکد میکنی
برا کد کردن اطلاعات میتونی خودت الگوریتمی رو بنویسی مخصوص به خودت باشه و هم میتونی از کلاس های دات نت استفاده کنی که تو سایت در موردش زیاد مطلب گیر میاد
موفق باشی

Mozhdeh.Hemati
چهارشنبه 20 دی 1391, 22:58 عصر
سلام، ممنون از همه دوستان


دوست عزیز اولین کار گذاشتن رمز روی دیتا بیسه
و همچن تعریف کاربر و دادن سطح دسترسی و ...

من میدونم روی دیتابیس های SQL Server CE میشه رمز گذاشت؛ ولی روی دیتابیس های معمولی چطور میشه اینکار رو کرد ؟


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

veniz2008
پنج شنبه 21 دی 1391, 00:55 صبح
من توی برنامه ام هم به کاربران سطح دسترسی دادم ولی اگه شخص بیاد برنامه SQL Server Managment رو نصب کنه که به پایگاه داده من دسترسی داره و امنیت برنامه میره زیر سوال! برای رفع این مشکل باید چیکار کنم؟
سلام. اگر قرار بر استفاده نرم افزار در چندین سیستم (بصورت شبکه) باشه شما دیتابیس رو بر روی سرور و فایل exe برنامه رو بر روی کلاینت ها خواهید داشت. اما برای دیتابیس میتونید به جای استفاده از windows authentication از sql server authentication استفاده کنید تا هرکسی نتونه به management studio وارد بشه و ساختار دیتابیس و جداول و داده ها رو ببینه. نکته بعدی اینه که تمام پسوردها رو باید بصورت رمزنگاری شده وارد کنید (الگوریتم های زیادی وجود داره) که حتی درصورت دسترسی مقدار بی ارزشی در اختیار شخص قرار بگیره تا نتونه با یوزر و پسورد به برنامه ورود کنه. در سمت کلاینت ها هم همونطور که گفتم یه فایل exe قرار داده میشه که البته باید با نرم افزارهایی که در این زمینه وجود داره اونو رمز نگاری کنید تا قابلیت بازیابی سورس کد رو مشکل کنید. این کارها برای یک کاربر متوسط معمولا ج میده. قطعا اگر جستجو کنید مطالب بهتری هم داخل سایت پیدا میکنید.
موفق باشی دوست عزیز.

Mozhdeh.Hemati
پنج شنبه 21 دی 1391, 08:59 صبح
به جای استفاده از windows authentication از sql server authentication استفاده کنید تا هرکسی نتونه به management studio وارد بشه
آخه اس کیو ال سرور برای احراز هویت فقط 2 حالت داره: Windows Authentication و SQL server Authentication and Windows Authentication که همونطور که میبینید در هر دو حالت کاربر ادمین سیستم به اس کیو ال سرور منیجمنت دسترسی داره. اگه اشتباه میکنم بگید!

رمزنگاری و از این جور کارها رو هم کردم ولی مشکل اینه که من میخوام یه چیزی مثل دیتابیس اکسس باشه، یعنی بیام یه رمز بزارم هیچکس به دیتابیس جز نرم افزارم دسترسی نداشته باشه. توی این مورد من رو اگر میتونید راهنمایی کنید.

Mozhdeh.Hemati
پنج شنبه 21 دی 1391, 18:16 عصر
منتظر نظر بقیه دوستان هستم

Hajivandian
پنج شنبه 21 دی 1391, 21:27 عصر
سلام،
منم مشکلی مشابه موضوع مورد بحث همین تاپیک دارم، ممنون میشم دوستان راهنمایی کنن

zarrinnegar
پنج شنبه 21 دی 1391, 21:41 عصر
خه اس کیو ال سرور برای احراز هویت فقط 2 حالت داره: Windows Authentication و SQL server Authentication and Windows Authentication که همونطور که میبینید در هر دو حالت کاربر ادمین سیستم به اس کیو ال سرور منیجمنت دسترسی داره. اگه اشتباه میکنم بگید!

درسته که هر دو رو داره ولی اگر user های ویندوزی رو از توش پاک کنید و یا تغییر رمز بدید دیگه ویندوزی وصل نمیشه شما باید موقع نصب user مربوط به SA رو تغییر بدید کاربر ادمین که بصورت ویندوزی به sql متصل میشه درواقع با Sa لاگین میکنه و sql برای sa رمزی در نظر نمیگیره و به ادمین ویندوز اجازه لاگین میده و بخاطر همین هر کسی میتونه وارد بشه ( به شرط این که با ادمین ویندوزش لاگین کرده باشه)
شما برای نمونه یک user توی ویندوزت بساز از نوع عادی بعد باهاش لاگین کن توی ویندوز بعد سعی کن وارد sql بشی ببین میشه یا نه

درواقع وقتی شما sql رو بصورت SQL server Authentication and Windows Authentication تنظیم میکنید یعنی این که اگر خواستید بتونید به کاربران ویندوزی هم دسترسی بدید نه اینکه هر کی دلش خواست لاگین کنه

Mozhdeh.Hemati
پنج شنبه 21 دی 1391, 22:50 عصر
حرف شما درست، ولی من میخوام همراه برنامه ام ستاپ بدم؛ کاربر که دیگه نمیتونه بیاد این تنظیمات امنیتی رو انجام بده!
من میخوام کاربر برنامه رو نصب کنه، اس کیو ال هم به صورت سایلنت نصب میشه و امنیت برقرار باشه. برای این مورد اگه میتونید یه راهکار قابل پیاده سازی بهم معرفی کنید.

zarrinnegar
جمعه 22 دی 1391, 00:58 صبح
حرف شما درست، ولی من میخوام همراه برنامه ام ستاپ بدم؛ کاربر که دیگه نمیتونه بیاد این تنظیمات امنیتی رو انجام بده!
من میخوام کاربر برنامه رو نصب کنه، اس کیو ال هم به صورت سایلنت نصب میشه و امنیت برقرار باشه. برای این مورد اگه میتونید یه راهکار قابل پیاده سازی بهم معرفی کنید.
برای سایلنت نصب کردن هم مایکروسافت راه کار داره از DVD نصب sql شروع کنید یک سری فایل توش داره که نصب های مختلفی رو نوشته اگه پیدا نکردید سری به سایتش بزنید Ebook های موجود برای آموزش Administratory هم داخلش داره و من متاسفانه در حال حاضر منبع رو ندارم که آدرس دقیق بدم ولی میدونم که هست

reza_ali202000
دوشنبه 23 بهمن 1391, 22:39 عصر
اگه بخوایم اینجوری فک کنیم شاید طرف اومد ویندوز رو پاک کرد! پس ادمین یا بهتر بگم کسی که کامپیتر دستشه عملا باید بتونه هرکاری دلش خواس بکنه. ناسلامتی اسمش ادمینه ها!