PDA

View Full Version : سوال: چرا جداول فایل با پسورد قوی از front برنامه براحتی ایمپورت میشوند



mohammadsaleh
دوشنبه 09 بهمن 1396, 10:08 صبح
سلام.
من یک دیتابیس با چند جدول با پسورد قوی ایجاد و حتی ان را به فرمت accde تبدیل کردم
front برنامه نیز حاوی جداول لینک شده از دیتابیس فوق است. موقع لینک شدن وارد کردن پسورد الزامی بوده و اگر وارد نکنیم لینک انجام نمیشود
اما در کمال ناباوری براحتی از یک فایل دیگر accdb می توان بدون نیاز به پسورد از front برنامه جداول را وارد کرد.
نمیدانم اشکال کار در کجاست.

mohammadsaleh
سه شنبه 10 بهمن 1396, 07:36 صبح
سلام به اساتید محترم.
لطفا برای این فاجعه ای که وجود دارد راه حلی نشان دهید. من که نتوانستم به نتیجه ای برسم.
شما در صورتی که دیتابیس را در یکی از رایانه های شبکه با ادرس ظاهرا نامعلوم هم بگذارید، خواهید دید که یک کاربر که اطلاعات اندکی از اکسس دارد با ایجاد فایل معمول براحتی جداول را از front برنامه بدون نیاز به پسورد قوی که شما فکر می کنید روی دیتابیس گذاشته اید ایمپورت خواهد کرد. و ماحصل آن لو رفتن مکان دیتابیس و دسترسی به همه اطلاعات است. انوقت کافی است ان فرد شیطانی هم بکند و به دستکاری در اطلاعات بپردازد

mazoolagh
سه شنبه 10 بهمن 1396, 10:33 صبح
چند نکته هست که باید رعایت کنید چون صرف جدا کردن دیتا و رمز گذاشتن روی اون کفایت نمیکنه.

اول اینکه اگر جداول رو بصورت لینک بگذارین همین وضعیتی رو خواهید داشت که الان باهاش روبرو شدین و این درست نمیشه حتی با بستن شیف و تبدیل فرمت frontend به accde

باید هنگام باز شدن frontend با کد جداول رو لینک کنین و در پایان کار هم دوباره با کد لینک ها رو بردارین.
اما این هم به تنهایی کافی نیست چون هنوز امکان ایمپورت در شرایط خاصی هست!

برای ایمپورت نشدن جداول باید اونها رو hidden کرد و hidden کردن عادی هم تاثیری نداره : باید attribute جدول رو با کد ویرایش کرد.

این دیگه نهایت کاری هست که میتونین در اکسس انجام بدین - در حد سواد من البته - باید دید دیگر دوستان چه نظر و راهکاری دارن

mohammadsaleh
سه شنبه 10 بهمن 1396, 13:14 عصر
تشکر از نظرتون
خوب در شرایطی که برنامه اجرا و لینکها ایجاد بشه باز این اتفاق خواهد افتاد. یعنی کاربر بعد از اجرا برنامه ممکن است جدولها را ایمپورت کند
در مورد hidden کردن خاصی که شما فرمودید متوجه نشدم منظورت اینه که بالفرض موقع لود شدن فرم ها جدولها مخفی بشوند یا چیز دیگری...
در ضمن مانند برنامه هایی که با ویژوال بیسیک نوشته می شود نمی توان بدون استفاده از sql سرور به دیتابیس اکسس متصل شد؟

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

CyborgHawk
جمعه 13 بهمن 1396, 00:55 صبح
با سلام



در مورد hidden کردن خاصی که شما فرمودید متوجه نشدم منظورت اینه که بالفرض موقع لود شدن فرم ها جدولها مخفی بشوند یا چیز دیگری...



Public Function HideTable(strTableName As String) As Integer

Dim dbs As DAO.Database


Set dbs = CurrentDb()

dbs.TableDefs(strTableName).Properties("Attributes").Value = dbHiddenObject

End Function


Public Function ShowTable(strTableName As String) As Integer


Dim dbs As DAO.Database


Set dbs = CurrentDb()

dbs.TableDefs(strTableName).Properties("Attributes").Value = 0

End Function

mazoolagh
یک شنبه 15 بهمن 1396, 10:27 صبح
روش مشابه همین هست که cyborghawk‌ گرامی آوردن ؛ فقط یک نکته هست که بهتره رعایت بشه و اون دست نخوردن دیگر attributeهاست.

' To Hide Table
dbs.TableDefs(strTableName).Attributes = dbs.TableDefs(strTableName).Attributes OR dbHiddenObject

' To Unhide Table
dbs.TableDefs(strTableName).Attributes = dbs.TableDefs(strTableName).Attributes AND NOT dbHiddenObject

mohammadsaleh
دوشنبه 16 بهمن 1396, 13:21 عصر
سلام ضمن تشکر از راهنمایی عزیزان
ولی اشکالی که وجود دارد اگر فردی از اپشن برنامه فایل های مخفی را در حال نمایش قرار دهد همان آش و همان کاسه است

mazoolagh
چهارشنبه 18 بهمن 1396, 13:11 عصر
لطفاً پست ها رو با دقت بخونین و همونجور که گفته شد عمل کنین تا باعث القای اطلاعات نادرست به دیگرانی که اینجا سرمیزنن نشه


هم راه گفته شد و هم نمونه کد گذاشته شده

mohammadsaleh
شنبه 21 بهمن 1396, 15:57 عصر
سلام. ضمن تشکر از جنابعالی
به نظرم موضوع اصلی این سئوال به یک موضوع ثانویه تبدیل شد و جنابعالی در نهایت اظهار نظر اخیر را فرمودید
موضوع سئوال ابدا نحوه مخفی کردن جداول یا ... نبود بلکه سئوال این بود که واقعا مثلا یکی از افراد حاضر در این تالار در شرکت یا سازمانی باشد که از برنامه تحت اکسس استفاده می کند و شما قوی ترین پسورد را روی برنامه خود بگذارید آن فرد با سه حرکت همه اطلاعات شما را به ایمپورت خواهد کرد
1- ایجاد یک دیتابیس خالی
2- از مخفی در اوردن ابجکتها در همان دیتابیس
3- ایمپورت جداول لینک شده شما از front به سادگی و بدون دانستن پسورد دیتابیس حاوی اطلاعات به نحوی که با دیتابیس لینک بوده و براحتی میتواند تمام اطلاعات را دستکاری و حتی کل اطلاعات را حذف نماید
و به نظرم این برای اکسس یک فاجعه است

در هر صورت شاید من متوجه منظور شما نمیشوم

ممنون خواهم شد اگر نمونه ای کوچک که جوانب مورد نظر شما رعایت شده و نمی توان اطلاعات را دستکاری کرد و... برای استفاده اعضا محبت کنید

mazoolagh
چهارشنبه 25 بهمن 1396, 19:14 عصر
سلام

همونجور که گفتم شما دقت نمیکنین به پستها
دقیقا نحوه hidden کردن جدول هاست که مهمه - همین کد که جناب cyberhawk گذاشتن کلید کار هست و کافی هم هست
با همین کد جداول لینک شده (و در صورت لزوم لوکال) در front end رو hidden کنین
بعد تست کنین و اونوقت متوجه میشین که اسم هیچ جدولی برای ایمپورت دیده نمیشه - چه لینک شده (و چه لوکال)

با همین روش میتونین تمام آبجکت ها رو مخفی کنین : فرم ها - گزارش ها و ...
که اتفاقا کار بسیار پسندیده ای هست!

احتیاجی به نمونه نیست مگر بعنوان انکار - یعنی نمونه ای بگذارم که شما نتونین جداول رو ایمپورت کنین

New Account
چهارشنبه 25 بهمن 1396, 22:08 عصر
سلام
با توجه به اینکه میشه جداول رو به راحتی از حالت محفی درآورد ( در همین حالت مورد اشارتون ) بهتره که یک توصیه دیگه به این دوستمون داشته باشیم
دوست من , اگر تا این حد امنیت اطلاعاتتون با تفاسیری که فرمودید براتون مهمه , اکسس رو کنار بذارید , نیاز شما تعیین کننده نوع ابزار مصرفیتون هستش
علی الظاهر نیاز شما توسط اکسس برآورده نخواهد شد
زیاد دنبال راه حل توی اکسس نباشید

mohammadsaleh
جمعه 27 بهمن 1396, 11:42 صبح
سلام.
به هر صورت از زحمتی که کشیدید ممنونم
اگر جسارتی شده پوزش میخوام. هدفم حل یک مشکل به صورت اساسی بود که تا حدودی زیادی شما و دوستان کمک کردید
البته با جستجویی که در اینترنت انجام دادم متوجه این حفره نا امن در اکسس با جداولش شدم

mazoolagh
شنبه 28 بهمن 1396, 12:33 عصر
سلام
با توجه به اینکه میشه جداول رو به راحتی از حالت محفی درآورد ( در همین حالت مورد اشارتون ) بهتره که یک توصیه دیگه به این دوستمون داشته باشیم
دوست من , اگر تا این حد امنیت اطلاعاتتون با تفاسیری که فرمودید براتون مهمه , اکسس رو کنار بذارید , نیاز شما تعیین کننده نوع ابزار مصرفیتون هستش
علی الظاهر نیاز شما توسط اکسس برآورده نخواهد شد
زیاد دنبال راه حل توی اکسس نباشید

سلام و روز خوش
خوشحالم که در بحث شرکت کردین.
ممنون میشم قدری باز کنین مبحث رو - یعنی مشخصتر بیان کنین که چجوری میشه اینکار رو کرد؟
برای من جالب هست دونستنش و فکر هم نکنم مطرح شدنش بدآموزی محسوب بشه.

البته هنوز بر این باورم که روش گفته شده در حدی که خواسته استارتر محترم تاپیک بوده جوابگو هست:


1- ایجاد یک دیتابیس خالی
2- از مخفی در اوردن ابجکتها در همان دیتابیس
3- ایمپورت جداول لینک شده شما از front به سادگی و بدون دانستن پسورد دیتابیس حاوی اطلاعات به نحوی که با دیتابیس لینک بوده و براحتی میتواند تمام اطلاعات را دستکاری و حتی کل اطلاعات را حذف نماید

یعنی با این سه مرحله نمیشه به دیتا دسترسی داشت

New Account
شنبه 28 بهمن 1396, 16:57 عصر
سلام mazoolagh
ضمن سلام
اینکه بنده عنوان کردم : "به سادگی امکان پذیر هستش" , از نگاه خودم به موضوع نگاه کردم.
همانگونه که باز کردن دکمه Shift از طریق رویه های خارجی امکان پذیره ( به طور مثال توسط ابزاری قدیمی که در اینجا (http://barnamenevis.org/.http://npmpro.blogfa.com/post/15/فعال-و-غیر-فعال-کردن-دکمه-Shift-توسط-برنامه-Shift-Control)معرفی کرده بودم و به روز رسانیش هم نکردم برای عموم ) به همین طریق امکان اعمال تغییرات مد نظر شما , از بیرون فایل هدف هم وجود داره ( کانکشن از بیرون فایل میزنید و مشخصه ها رو تغییر میدید )
روش مخفی کردن روش مناسبی هست ولیکن بازدارنده مطلق نیست مگر برای طیفی محدود ( گو اینکه اگر به اونها هم ابزار آماده رو بدید اونها هم به سادگی خواهند تونست )
( توضیح اینکه خیلی از موارد رو حذف کردم چون مبحثی رو توصیح دادم که به نظرم اومد بهتره حذف بشه )
موفق باشید