رمزنگاری web.config با استفاده از NET Framework.

شنبه 21 آذر 1394

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

رمزنگاری web.config با استفاده از NET Framework.

ابتدا یک نگاه کلی بر سه فایل مهم machine.config و App.config و web.config می کنیم.در کل می دانیم که این فایل ها هر سه فایل های پیکربندی هستند . فایل های پیکربندی برای ذخیره داده هایی که مقدارهای کلیدی هستند به کار می رود.این فایل ها مزیتی که دارند این است که دارای امنیت می باشند و اطلاعات داخل آنها توسط خود فرم ورک (Framework)مایکروسافت محافظت می شود.و اگر در برنامه ای آدرس این فایل ها زده شود به کاربر پیغام خطا داده می شود.

Web.confige

یک فایل پیکربندی است که در برنامه های وب مورد استفاده قرار می گیرد.این فایل پیکربندی برنامه را درون خود نگهداری میکند.

App.config

این فایل پیکربندی در برنامه های خاصی مانند سرویس های ویندوز ، برنامه وب ، کنسول و یا WPF استفاده می شود.

Machine.config

این فایل زمانی که Visual .Net را در سیستم خود نصب می کنید در داخل سیستم عامل ایجاد می شود.این فایل تنظیمات ماشین را درون خود ذخیره می کند.فقط یک فایل machine.config در کل سیستم خواهیم داشت .

پس از این آشنایی مختصر با فایل های پیکربندی، رمزنگاری بخش های مختلف web.config را شرح می دهیم

ابتدا یک پروژه جدید از نوع   ASP.Net Web Formایجاد می کنیم .سپس یک صفحه webform ایجاد می کنیم در داخل این صفحه ابتدا محتویات قسمت های رشته اتصال و Authentication را لود می کنیم .

در داخل این صفحه چندین دکمه برای رمزنگاری و بازگشایی رمز بخش های رشته اتصال و Authentication قرار می دهیم.

قسمت UI صفحه به صورت زیر است :

<body dir="rtl" style="background-color: beige;">
    <form id="form1" runat="server">
    <div>
        <h1>رمزنگاری قسمت های مختلف در Web.config</h1>
        <p>در قسمت پایین با زدن دکمه های مربوط به رمزنگاری و بازگشایی رمز می توانید به اجرای عملیات مربوطه بپردازید 
      </p>
        <p>کد زیر مربوط به رشته اتصال است </p>
       
            <asp:Label ID="PlainTextConnectionString" runat="server"></asp:Label><br /><br />
            <b>محتوای Web.config</b>
        <asp:TextBox ID="webConfig" TextMode="MultiLine" Width="97%" Rows="20" runat="server"></asp:TextBox>
        <p>
            <asp:Button ID="btnRefreshWebConfig" runat="server" Text="Refresh" OnClick="btnRefreshWebConfig_Click" />
            &nbsp;&nbsp;&nbsp;
            <asp:Button ID="btnEncrypt" runat="server" Text="رمزنگاری بخش رشته اتصال در web.config" OnClick="btnEncrypt_Click" />
            &nbsp;&nbsp;&nbsp;
            <asp:Button ID="btnDescrypt" runat="server" Text="بازگشایی رمز قسمت رشته اتصال در web.config" OnClick="btnDescrypt_Click" />
            &nbsp;</p>
        <p>
            <asp:Button ID="btnEncAuthentication" runat="server" OnClick="btnEncAuthentication_Click"
                Text="رمزنگاری بخش Authentication" />
            &nbsp;
            <asp:Button ID="btnDecAuthentication" runat="server" OnClick="btnDecAuthentication_Click"
                Text="بازگشایی رمز Authentication" /></p>
    </div>
    </form>
</body>
</html>

سپس در بخش Code Behind و برای رمزنگاری و رمزگشایی رشته اتصال کدهای زیر را می نویسیم

  protected void btnEncrypt_Click(object sender, EventArgs e)
    {
        ProtectSection("connectionStrings", "DataProtectionConfigurationProvider");
        RefreshWebConfig();
    }

    protected void btnDescrypt_Click(object sender, EventArgs e)
    {
        UnProtectSection("connectionStrings");
        RefreshWebConfig();
    }

به همین ترتیب برای رمزنگاری و رمزگشایی قسمت Authentication در web.config کد های زیر را می نویسیم.بعد از زدن دکمه refresh اطلاعات رمزنگاری شده به جای اطلاعات اصلی در Web.config خواهد نشست .

 protected void btnEncAuthentication_Click(object sender, EventArgs e)
    {
        ProtectSection("system.web/authentication", "DataProtectionConfigurationProvider");
        RefreshWebConfig();
    }

    protected void btnDecAuthentication_Click(object sender, EventArgs e)
    {
        UnProtectSection("system.web/authentication");
        RefreshWebConfig();
    }
فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید