امنیت در AMS :

خوب اولا که امنیت رو بیشتر واسه فایلای دیتابیس به کار میبرن و دوما این پست قراره به امنیت فایلا و دیتابیس ای گفته شه که خودشون قابلیت رمز نگاری ندارن. مثل دیتابیس sql 3 (نه دیتابیس my sql که خود طرف همون موقع میتونه روش رمز بزاره و این قابلیت تو خود دیتابیس های my sql هست)

امنیت تو اینجا ،2 حالت و روش داره :

1) دسترسی فایل مورد نظر رو قطع کنیم که در این صورت تا دسترسی اش باز نشه ، نمیشه اطلاعات رو خوند یا روش نوشت و ذخیره کرد
2) با دستورات و توابع crypto ، روی فایل مورد نظر ، پسورد گزاشت که تو این روش ، روش ماهی آبی 4 یا همون BlueFish گفته میشه. در این روش برای کد گزاری و رمز نگاری ، باید فایل مبدا رو بدین و فایل مقصد رو که حاوی همون فایل با رمز هست (البته با پسوند دیگه ای هم هست که واسه همین ، نمیتونین همون لحظه ازش استفاده کنین) و برای استفاده ، باید مسیر فایل مقصد و رمزش رو بدین تا کد گشایی شه و تو یه جای دیگه این فایلی که بدون رمز و قابل استفاده هه رو ، ذخیره و استفاده کنین


روش اول :

با دستور

کد:
File.SetPermissions("C:\\MyFile.ext", SID_EVERYBODY, DENY_ACCESS, ALL_PERMISSIONS, SUB_CONTAINERS_AND_OBJECTS_INHERIT);

تو ورودی یا همون پارامتر اول کد بالا ، مسیر همراه پسوند فایل رو بدین . حواستون باشه تو AMS هر درایو یا پوشه ای که بهش میرسین ، باید با دو تا (نه یکی) علامت \\ از هم جدا شن
میتونین دسترسی به یه فایل رو مسدود کنین که نباید در این صورت ، وقتی که از اتوران دارین خارج میشین ، فایل های مورد نیازی که برا اجرای اولیه ی بعدی لازمه مثل فایل autoran.exe و یا فایلایی که تو پوشه ی autoplay و ... هست رو مسدود کنین وگرنه اتوران بالا نمیاد و هیش کاریش نمیشه کرد. همونطور که گفتم ، بیشتر کاربرد ، تو امنیت و مسدود کردن فایلای دیتابیس هه. یادتون باشه که با این روش ، نمیتونین کاری کنین که طرف فایل رو از ویندوزش حذف نکنه ها. فقط با این روش ، تا حدود زیادی خیالتون راحت میشه که افراد عادی و... نمیتونن دیتابیس رو ویرایش و اجرا کنن (چون امنیت که 100 در 100 نیست 4)

برای استفاده از اون فایلی که مسدود کردین هم باید اول از مسدودیت خارجش کنین با تغییر تو ورودی سوم همون کد بالا ،اینجوری کد رو تنظیم کنین :

کد:
File.SetPermissions("C:\\MyFile.ext", SID_EVERYBODY, SET_ACCESS, ALL_PERMISSIONS, SUB_CONTAINERS_AND_OBJECTS_INHERIT);

خوب معلومه دیگه ممولا کد باز کردن فایل دیتابیس رو تو رویداد on startup مینویسن تا موقع ورود به اتوران ، قابل استفاده بشه و کد مسدود سازی شو موقع خروج اتوران تا کسی چش چپ به دیتابیس نگا نکنه 4



روش دوم :

استفاده از دستور همون ماهیه هست 4 (دیگه موند پلنگ و یوز پلنگ شکار کنیم 4)
که برای پسورد گزاشتن از دستور

کد:
Crypto.BlowfishEncrypt("C:\\MyFolder\\MyFile.txt", "C:\\DestFolder\\MyFile.enc", "trustno1withthispassword");

استفاده میکنیم که تو ورودی اول ، مسیر همراه پسوند اون فایلی رو که میخایم رمز نگاری کنیم رو میدیم و تو ورودی دوم ، مسیر همین فایلی که رمز نگاری شدش ، حالا بگیم کجا ذخیره بشه رو (تو ورودی دوم ، پسوند فایل رو نباید عوض کرد و همش باید همین enc. باشه. فقط اسم و مسیر ذخیره شدن شو هر جایی که دوس داشتین ، بگین. نکته ی بعدی هم حواستون به مسیری که میدین باشه که گفتم باید بین هر درایو یا فایل یا پوشه ای که میزارین ، دو تا علامت \\ بزارین). تو ورودی سوم هم که پسورد رو تو علامت دابل کونیشن مینویسن . ینی الان پسورد این فایل تو اینجا میشه trustno1withthispassword (بی چاره اونی که بخاد این همه رو رمز گشایی کنه 4)

حالا برا باز کردن اون فایلی که پسورد داره و رمز نگاری شد (منظورم همون فایل مقصدی هه که مسیر ذخیره سازیش رو تو ورودی و پارامتر دوم کد بالا دادین که با پسوند enc. ذخیره شد) از دستور


کد:
Crypto.BlowfishDecrypt("C:\\MyFolder\\MyFile.enc", "C:\\DestFolder\\MyFile.txt", "trustno1withthispassword");

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

کد:
File.Delete("C:\\MyDir\\MyFile.ext", false, false, false, nil);
فایلی رو که کد گشایی کردین و ممولا دیتابیس هست (که تو اینجا اسمش مثلا MyFile.txt بود) رو پاک کنین تا بهش چپ چپ نگا نکنن 4