آموزش رمز نگاری کانکشن استرینگ به صورت خود کار در Asp.Net
آموزش رمز نگاری کانکشن استرینگ به صورت خود کار در Asp.Net
در این پست قصد داریم تا نحوه رمز نگاری رشته اتصال به دیتابیس را توضیح دهیم.
چرا باید کانکشن استرینگ را رمز نگاری کنیم؟
جهت بالا بردن امنیت سایت از دست هکرها، چرا که اگر کسی نام دیتابیس و نام کاربری متصل به دیتابیس را بداند با روش های می توان دیتابیس وب سایت را پاک کرد.
روشی که ما توضیح می دهیم به صورت خودکار عمل رمز نگاری و رمز گشایی را انجام می دهد اما روش های دیگر نیز وجود دارد.
برای رمز نگاری کانکشن استرینگ در Asp.Net ابتدا Package Manager Console را از منوی tools و NuGet Package Manager باز کنید و دستور Install-Package WebActivatorEx را وارد کنید و کلید اینتر را فشار دهید. تا توجه داشته باشید که باید به اینترنت متصل باشید.
سپس یک کلاس با نام AutoEncryptConnectionStrings ایجاد کنید و کدهای زیر را داخل آن کپی کنید.
using System.Configuration; using System.Web; using System.Web.Configuration; [assembly: WebActivatorEx.PostApplicationStartMethod(typeof(AutoEncryptConnectionStrings), "AutoEncrypt")] public class AutoEncryptConnectionStrings { public static void AutoEncrypt() { // don't encrypt if debug=true in the web.config if (HttpContext.Current.IsDebuggingEnabled) return; var configSection = GetConfigurationSection(); if (configSection.SectionInformation.IsProtected) return; configSection.SectionInformation.ProtectSection("DataProtectionConfigurationProvider"); configSection.SectionInformation.ForceSave = true; configSection.CurrentConfiguration.Save(); } public static void Decrypt() { var configSection = GetConfigurationSection(); if (!configSection.SectionInformation.IsProtected) return; configSection.SectionInformation.UnprotectSection(); configSection.SectionInformation.ForceSave = true; configSection.CurrentConfiguration.Save(); } private static ConfigurationSection GetConfigurationSection() { Configuration configuration = WebConfigurationManager.OpenWebConfiguration("~"); var configSection = configuration.GetSection("connectionStrings"); if (configSection.ElementInformation.IsLocked || configSection.SectionInformation.IsLocked) return null; return configSection; } }
حال به فایل Web.Config بروید debug را از true به fasle تغییر دهید
<compilation debug="false" targetFramework="4.5.1">
نکته:
هنگامی که وب سایت خود را در سرور واقعی قرار می دهید debug را از true به fasle تغییر دهید تا خطاها نمایش داده نشود.
اگر وب سایت خود را اجرا کنید و به فایل web.config بروید خواهید دید که رشته اتصال رمز نگاری شده است.
نظر / سوال