PDA

View Full Version : دیتا بیس



HAIdle
چهارشنبه 09 خرداد 1386, 19:59 عصر
سلام به همه
فرض کنید از توی کد سی شارپ می خواهیم به یک دیتابیس متصل بشیم واون پایگاه هم کلمه عبور داره . ساده ترین کار اینه که تو خود کد کلمه عبور را بذاریم ولی در این صورت به سادگی با یک hex editor کلمه عبور ما پیدا میشه.

کسی ایده ای نداره برای حل این مشکل؟
یه سوال دیگه: وقتی با access کار می کنیم پسورد را می دیم ولی وقتی با sql server کار می کنیم معمولا برای پسورد integrated security = true را قرار می دیم. در این صورت هر کی

می تونه با 4 خط کد پایگاه داده ما را دستکاری کنه فقط کافیه کدش روی سرور ما اجرا بشه . این چه امنیتیه آخه؟

kiani.mehdi
چهارشنبه 09 خرداد 1386, 23:03 عصر
کی گفته که حتما باید از integrated security استفاده کرد؟
شما میتونین با هر username و passwordi که توی دیتا بیس تعریف کردین وارد بشین
جدیدا البته خیلی هم جدید نیست از این قفل های usb برای نگهدارب پسورد و یا حتی connection string استفاده می کنن
می دونید که با تعاربف یوزر در دیتا بیس حتی میتونید روی تک تک ستون های یک جدول نیز نظارت داشته باشین
البته میتونید پسورد را هم encrypt کنید با الگوریتم های مختلفی که وجود داره که در حال حاضر بهترین و مطمئن ترین اونها الگوریتم های md5 و sha هستند
البته استفاه از md5 مرسوم تره
در ضمن پسوردهایی که برای فایل های access میذارن به مفت نمی ارزه چون خیلی راحت کرش میشه
اگه دیتا بیس اکسس دارید که پسورد داره را میتونید بهم بدید تا بدون پسوردش را بهتون بدم
البته اگه خود پسورد را هم نیاز داشته باشین میتونم بهتون بدم:شیطان: :لبخند:
البته امیدوارم که سوالتون را درست متوجه شده باشم
موفق باشید
مهدی کیانی

HAIdle
پنج شنبه 10 خرداد 1386, 10:07 صبح
ممنون ولی :
1-درسته که لازم نیست از integrity security استفاده کنیم ولی هر کی می تونه با قرار دادن integrity security به جای کلمه عبور به پایگاه ما دسترسی پیدا کنه البته از طریق کد.

2- بله! میشه از قفل های سخت افزاری استفاده کرد ولی منظور من امن کردن برنامه از طریق نرم افزار است.

3 - منظورتون از تعاریف user برای تک تک ستونها چیه؟ بالاخره باز هم برای دسترسی به هر ستون باید در برنامه پسورد را وارد کنیم و باز پسورد براحتی لو میره.

4 - میشه رمز کردن پسورد را بیشتر توضیح بدید. مثلا دیتابیس من یک پسورد داره و ما باید در برنامه آن پسورد را بیان کنیم. حال چه فایده ای داره که ما در برنامه پسورد را رمز کنیم. بالاخره که باید پسورد اصلی را بدیم

5- در مورد غیر امن بودن پسورد access فکر کنم شما سوال را خوب متوجه نشدید . منظور من استخراج پسورد از خود دیتا بیس نیست بلکه قابلیت استخراج پسورد از داخل کد است. یعنی سوال من اینه که ما بالاخره مجبوریم پسورد را بطور واضح در کد بیان کنیم تا برنامه اجازه دسترسی به دیتابیس را داشته باشه. در این صورت براحتی میشه با بررسی hex برنامه پسورد را بدست آورد.

kiani.mehdi
پنج شنبه 10 خرداد 1386, 22:09 عصر
یه راه حل خوب
البته اینکه میگم خوب نسبی هستش
بلا خره می دونید که کرک و کرش کردن برنامه و این جور حرف ها چیز هایی بوده که همیشه هست و اجتناب ناپذیره
همه سعی ما هم اینه حتی الامکان این دسترسی ها را محدود کنیم
البته قبل از اینکه من راه حل را بگم شما باید کار کردن با md5 ها و sha ها را بلد باشین
البته یکیش هم کافیه (md5 پیشنهاد میشه)
اگه بلد نیستین که باید اول اونو توضیح بدم
بلدین یا نه؟

HAIdle
پنج شنبه 10 خرداد 1386, 22:51 عصر
بله می دونم.

HAIdle
جمعه 11 خرداد 1386, 19:58 عصر
راه حلت چی شد پس؟

kiani.mehdi
جمعه 11 خرداد 1386, 20:37 عصر
ok
البته این راه حلی را که میگم بیشتر برای user name و passworde ورود به برنامه ازش استفاده می کنم
در مورد sqlconnection تا حالا بهش فکر نکرده بودم
کاری که من میکنم اینه
ابتدا میام یه کلمه رمز برای خودم مثلا مهدی انتخاب میکنم بعد کد MDF اونو پیدا میکنم (خارج ار برنامه و با یه برنماه دیگه) بعد کد mdf را تو دیتا بیس وارد میکنم
مثلا تو جدول users و تو فیلد passWord
(می تونی هر جوره دیگه هم که بخوی برای امنیت بیشتر تغییرات تو کلمه رمزت بدی)
حتما اطلاع دارید که هر چی طول کلمه عبور بزرگتر و شامل کاراکتر های متنوع باشه بر گردوندن اون مشکل تره

مثلا کلمه mehdiKiani!@#456 خیلی بهتر از mehdi هستش
بعد توی برنا مت فقط کافیه که متن اون تکست باکسی که کاربر وارد می کنه را گرفته
به دستور txtPassword.Text
و اونو با مقدار توی جدولت چک کنی
میبینی که با این روش هیچ جایی تو برنامه اسمی از mehdi همون کلمه رمز برده نشده
بعد از اون هم هر موقع که کاربر خواست پسوردش را عوض کنه میتونی mdf اونو با یسری تغییرات پیدا کنی و تو دیتا بیست ذخیره کنی
برای sqlconnection و پسورد اون هم باید بشه با این روش و یا حالا یه چیزی تو مایه این عمل کنی

امید وارم متوجه شده باشی
مهدی کیانی