برگزیده های پرشین تولز

دات نت2 و قدرت امنیتیش

Mehdi

مدیر بازنشسته
تاریخ عضویت
1 آگوست 2004
نوشته‌ها
5,602
لایک‌ها
49
محل سکونت
Anywhere
يكي از بهترين مكانهايي كه اطلاعات اتصال به ديتابيس در آن ذخيره مي‌شود فايل web.config است. زيرا يكبار ذخيره شده و بارها در مكانهاي مختلف برنامه مي‌توان از آن استفاده كرد و در صورت نياز به تغيير فقط يكبار بايد تغيير كند و نيازي به تغيير كل برنامه نخواهد بود.
اما مشكلي كه وجود دارد اين است كه اگر شخص مهاجم دسترسي به اين فايل پيدا كند و محتواي آنرا مطالعه نمايد به سادگي مي تواند به ديتابيس نيز صدمه برساند چون مشخصات اتصال به ديتابيس به صورت عادي در آن ذخيره شده. (اين استاندارد براي مثال در php هم رعايت مي شود و فايلهاي config معرف حضور علاقمندان هست ...)
در ASP.NET 2.0 امكان رمزگذاري "خودكار" قسمت connection string موجود در وب كانفيگ با كمك الگوريتم هاي RSA و تريپل DES مهيا شده. و نكته مهم تر اينكه اين رمزگذاري بر اساس كليدي كه مختص به سيستم شما است انجام مي شود. يعني در بدترين حالت اگر اين فايل كانفيگ به كامپيوتري ديگر منتقل شود قابل رمزگشايي نيست چون machine-specific key تفاوت مي‌كند.

جهت رمزنگاري خودكار قسمت كانكشن استرينگ در وب كانفيگ مي توان از تابع زير استفاده كرد:

کد:
public void encryptConnectionStrSection()

Configuration config;
config = WebConfigurationManager.OpenWebConfiguration("~");

ConnectionStringsSection section;
section = config.GetSection("connectionStrings") as ConnectionStringsSection;

if (!section.SectionInformation.IsProtected)

section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");


config.Save();
**

يكبار تابع فوق را فراخواني كرده و سپس به قسمت connectionStrings نگاهي بيندازيد!!

لازم به ذكر است كه اين مورد در برنامه نويسي تفاوتي ايجاد نكرده و مديريت كانكشن استرينگ رمزگذاري شده و رمزگشايي آن در حين استفاده، بعهده دات نت فريم ورك2 است.
----
Refrence:D
pc7
_________________
واقعا خیلی جالب هستش:D
 
بالا