سلام
آیا پسورد دیتابیسی که قبلاً با ورود پسورد مربوطه(دستی یا از طریق کد) باز شده ( اجرا شده ) قابل تشخیص است ؟
سلام
آیا پسورد دیتابیسی که قبلاً با ورود پسورد مربوطه(دستی یا از طریق کد) باز شده ( اجرا شده ) قابل تشخیص است ؟
پسورد پیدا نمیشه،
ولی اگر دیتابیس دیگه ای لینک به جدولهای این داشته باشه و اون دیتابیس باز باشه میشه بدون داشتن پسورد به جدولها دسترسی پیدا کرد.
باسلام
در تاپیکی با این لینک https://barnamenevis.org/showthread....%B3&highlight= که جنابعالی هم در این تاپیک شرکت داشته اید دوست ایجادکننده تاپیک که یکی از افراد با تجربه هم هست اظهار داشته اند که در مواردی این کار شدنیه ( تصویر پست مربوطه در ضمیمه ) و چند وقت قبل هم در تاپیکی یکی از اساتید قدیمی بنام آقای پیروزمهر هم ادعانموده بودند که دیتابیسی که که باز باشه میتوان په پسورد آن دست پیدا کرد.
البته این دوستمون در تاپیک دیگه ای خلاف این نظر را مطرح کرده اند
به تصویر پست مربوطه در ضمیمه عنایت بفرمائید :
اول اینکه تجربه و دانش آقایان صدیقی و پیروزمهر در این زمینه قطعا بیشتر هست، یادم هست در یکی همین تاپیک ها که اشاره کردین، به نکته ظریفی اشاره شد که من ازش غافل بودم.
واقعیت این هست:
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:47 عصر
وقتی 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 چیز دیگه ای دیده نمیشه.
از رجیستری هم دیگه نمیشه مثل قدیم این اطلاعات رو پیدا کرد.
گویا اطلاعات حساس توسط خود درایور در جایی و به شکلی محافظت شده نگهداری میشه.
خلاصه اینکه:
با خیال راحت استفاده کنین، فقط یادتون باشه امنیت هزینه داره:
این هزینه هم شامل سخت افزار هست (سرور جداگانه)،
هم زمان، هم آموزش هم تخصص هم موارد دیگه
اینجا چند تاپیک اختصاصی در همین مورد هست - اونها رو هم بخونین باحتمال زیاد مطالب مفیدی توش پیدا میشه