PDA

View Full Version : سوال: بدست آوردن پسورد دیتابیس پسوردار باز(اجرا شده)



atf1379
دوشنبه 18 فروردین 1399, 08:51 صبح
سلام
آیا پسورد دیتابیسی که قبلاً با ورود پسورد مربوطه(دستی یا از طریق کد) باز شده ( اجرا شده ) قابل تشخیص است ؟

mazoolagh
سه شنبه 19 فروردین 1399, 10:24 صبح
پسورد پیدا نمیشه،
ولی اگر دیتابیس دیگه ای لینک به جدولهای این داشته باشه و اون دیتابیس باز باشه میشه بدون داشتن پسورد به جدولها دسترسی پیدا کرد.

atf1379
سه شنبه 19 فروردین 1399, 17:47 عصر
پسورد پیدا نمیشه،
ولی اگر دیتابیس دیگه ای لینک به جدولهای این داشته باشه و اون دیتابیس باز باشه میشه بدون داشتن پسورد به جدولها دسترسی پیدا کرد.

باسلام
در تاپیکی با این لینک https://barnamenevis.org/showthread.php?545823-%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-%D9%88-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D8%B1%D9%88%D8%B4%DB%8C-%D8%AC%D8%AF%DB%8C%D8%AF-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%85%D8%AD%D8%A7%D9%81%D8%B8%D8%AA-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%AA%D8%AD%D8%AA-%D8%A7%DA%A9%D8%B3%D8%B3&highlight= که جنابعالی هم در این تاپیک شرکت داشته اید دوست ایجادکننده تاپیک که یکی از افراد با تجربه هم هست اظهار داشته اند که در مواردی این کار شدنیه ( تصویر پست مربوطه در ضمیمه ) و چند وقت قبل هم در تاپیکی یکی از اساتید قدیمی بنام آقای پیروزمهر هم ادعانموده بودند که دیتابیسی که که باز باشه میتوان په پسورد آن دست پیدا کرد.

atf1379
سه شنبه 19 فروردین 1399, 17:58 عصر
البته این دوستمون در تاپیک دیگه ای خلاف این نظر را مطرح کرده اند
به تصویر پست مربوطه در ضمیمه عنایت بفرمائید :

mazoolagh
پنج شنبه 21 فروردین 1399, 11:11 صبح
اول اینکه تجربه و دانش آقایان صدیقی و پیروزمهر در این زمینه قطعا بیشتر هست، یادم هست در یکی همین تاپیک ها که اشاره کردین، به نکته ظریفی اشاره شد که من ازش غافل بودم.

واقعیت این هست:
1- اگر frontend به backend پسورد دار جدول لینک شده دائمی داشته باشه، میشه از frontend پسورد backend رو بیرون کشید (بدون اینکه frontend اجرا شده باشه)
2- اگر لینک ها بصورت دینامیک ساخته میشن، فقط وقتی که frontend باز هست میشه پسورد backend رو پیدا کرد، و البته به جداول هم دسترسی داشت (بدون نیاز به پسورد)
3- اگر بجای linked table از connection و پر کردن recordset و action query و ... استفاده کنین، مطمنا بهتر از دو روش قبل هست ولی با قطعیت نمیشه از امنیت کامل backend مطمئن بود.
4- امنیت BE برمیگرده به تخصص و دانش کسی که دنبال باز کردنش هست. بهترین راه استفاده از sql server روی دستگاه جدا و server authentication (نه windows authentication) هست.

eb_1345
پنج شنبه 21 فروردین 1399, 12:55 عصر
اول اینکه تجربه و دانش آقایان صدیقی و پیروزمهر در این زمینه قطعا بیشتر هست، یادم هست در یکی همین تاپیک ها که اشاره کردین، به نکته ظریفی اشاره شد که من ازش غافل بودم.

واقعیت این هست:
1- اگر frontend به backend پسورد دار جدول لینک شده دائمی داشته باشه، میشه از frontend پسورد backend رو بیرون کشید (بدون اینکه frontend اجرا شده باشه)
2- اگر لینک ها بصورت دینامیک ساخته میشن، فقط وقتی که frontend باز هست میشه پسورد backend رو پیدا کرد، و البته به جداول هم دسترسی داشت (بدون نیاز به پسورد)
3- اگر بجای linked table از connection و پر کردن recordset و action query و ... استفاده کنین، مطمنا بهتر از دو روش قبل هست ولی با قطعیت نمیشه از امنیت کامل backend مطمئن بود.
4- امنیت BE برمیگرده به تخصص و دانش کسی که دنبال باز کردنش هست. بهترین راه استفاده از sql server روی دستگاه جدا و server authentication (نه windows authentication) هست.

پسورد از طریق ....قابل دستیابی است

atf1379
پنج شنبه 21 فروردین 1399, 13:12 عصر
اول اینکه تجربه و دانش آقایان صدیقی و پیروزمهر در این زمینه قطعا بیشتر هست، یادم هست در یکی همین تاپیک ها که اشاره کردین، به نکته ظریفی اشاره شد که من ازش غافل بودم.

واقعیت این هست:
1- اگر frontend به backend پسورد دار جدول لینک شده دائمی داشته باشه، میشه از frontend پسورد backend رو بیرون کشید (بدون اینکه frontend اجرا شده باشه)
2- اگر لینک ها بصورت دینامیک ساخته میشن، فقط وقتی که frontend باز هست میشه پسورد backend رو پیدا کرد، و البته به جداول هم دسترسی داشت (بدون نیاز به پسورد)
3- اگر بجای linked table از connection و پر کردن recordset و action query و ... استفاده کنین، مطمنا بهتر از دو روش قبل هست ولی با قطعیت نمیشه از امنیت کامل backend مطمئن بود.
4- امنیت BE برمیگرده به تخصص و دانش کسی که دنبال باز کردنش هست. بهترین راه استفاده از sql server روی دستگاه جدا و server authentication (نه windows authentication) هست.
سلام
آیا اگر بانک اطلاعاتی بجای اکسس sql server باشد و برای آن رمز قرار بدهیم و جداول آن را به داخل برنامه لینک نمائیم باز هم پسورد قابل دستیابی است ؟

mazoolagh
شنبه 23 فروردین 1399, 11:58 صبح
وقتی backend رو به sql میبرین دیگه مفهوم پسورد روی دیتابیس مثل اونچه در اکسس دارین به اون شکل صادق نیست.
البته encryption هست ولی کاربرد دیگه ای داره.

اونچه اهمیت داره نوع authentication هست که اینجا جای بحثش نیست.

بطور متعارف اگر بخواین جداول sql رو به frontend لینک کنین اول یک odbc میسازین که authentication رو با توجه به تنظیم sql server همونجا انجام میدین.

اگر windows authentication دارین که همه عملیات تعریف کاربر و سطح دسترسی در خود sql server باید انجام بدین و کانکشن رو trusted تعریف میکنین. این روش در واقع بهتره ولی باید به sql و مدیریت شبکه و active directory بیشتر از حالت عادی تسلط داشته باشین.
کانکشن trusted خوبیش این هست که در connection هیچ user/password لازم نیست مشخص بشه که احتمال لو رفتن اون باشه.

اگر sql server authentication استفاده کنین، بطور منطقی این ریسک هست که user/password رو بشه از جایی پیدا کرد.
یکی اینکه همونجور که قبلا اشاره شد از frontend اطلاعات جدول لینک شده رو بخونیم.
خوشبختانه الان این داستان دیگه نیست و غیر dsn چیز دیگه ای دیده نمیشه.
از رجیستری هم دیگه نمیشه مثل قدیم این اطلاعات رو پیدا کرد.
گویا اطلاعات حساس توسط خود درایور در جایی و به شکلی محافظت شده نگهداری میشه.

خلاصه اینکه:
با خیال راحت استفاده کنین، فقط یادتون باشه امنیت هزینه داره:
این هزینه هم شامل سخت افزار هست (سرور جداگانه)،
هم زمان، هم آموزش هم تخصص هم موارد دیگه

اینجا چند تاپیک اختصاصی در همین مورد هست - اونها رو هم بخونین باحتمال زیاد مطالب مفیدی توش پیدا میشه

atf1379
شنبه 23 فروردین 1399, 12:43 عصر
وقتی backend رو به sql میبرین دیگه مفهوم پسورد روی دیتابیس مثل اونچه در اکسس دارین به اون شکل صادق نیست.
البته encryption هست ولی کاربرد دیگه ای داره.

اونچه اهمیت داره نوع authentication هست که اینجا جای بحثش نیست.

بطور متعارف اگر بخواین جداول sql رو به frontend لینک کنین اول یک odbc میسازین که authentication رو با توجه به تنظیم sql server همونجا انجام میدین.

اگر windows authentication دارین که همه عملیات تعریف کاربر و سطح دسترسی در خود sql server باید انجام بدین و کانکشن رو trusted تعریف میکنین. این روش در واقع بهتره ولی باید به sql و مدیریت شبکه و active directory بیشتر از حالت عادی تسلط داشته باشین.
کانکشن trusted خوبیش این هست که در connection هیچ user/password لازم نیست مشخص بشه که احتمال لو رفتن اون باشه.

اگر sql server authentication استفاده کنین، بطور منطقی این ریسک هست که user/password رو بشه از جایی پیدا کرد.
یکی اینکه همونجور که قبلا اشاره شد از frontend اطلاعات جدول لینک شده رو بخونیم.
خوشبختانه الان این داستان دیگه نیست و غیر dsn چیز دیگه ای دیده نمیشه.
از رجیستری هم دیگه نمیشه مثل قدیم این اطلاعات رو پیدا کرد.
گویا اطلاعات حساس توسط خود درایور در جایی و به شکلی محافظت شده نگهداری میشه.

خلاصه اینکه:
با خیال راحت استفاده کنین، فقط یادتون باشه امنیت هزینه داره:
این هزینه هم شامل سخت افزار هست (سرور جداگانه)،
هم زمان، هم آموزش هم تخصص هم موارد دیگه

اینجا چند تاپیک اختصاصی در همین مورد هست - اونها رو هم بخونین باحتمال زیاد مطالب مفیدی توش پیدا میشه


درود برشما
مثل همیشه راهنمائیتون مفید و عالی بود
ممنون