ASP.NET溫故而知新學習系列之網站安全技術—加強頁面間傳值的安全性Convert.ToBase64String(三)

     閱讀目錄

  一:加強頁面間傳值的安全性

  二:Convert.ToBase64String

  三:運行效果

  一:加強頁面間傳值的安全性

  使用查詢字符串進行頁面間傳值的過程中,一定要把查詢字符串要傳遞的值進行加密,以下是未對查詢字符串加密的URL:http://localhost:3337/ProductView.aspx?ID=12,用戶可以修改查詢字符串的值,例如:將ID=12改爲ID=16,ID=16本是VIP才能訪問的產品頁面,這樣的話,就可以做到訪問沒有權限的頁面,所以要想保證查詢字符串的安全,可以使用加密算法,解密算法,對查詢字符串中要傳遞的值進行加密,例如加密後的效果:http://localhost:3337/ProductView.aspx?ID=Z9j8pUm

  這種方法不是很安全,當別人知道你是通過Convert.ToBase64String這種方法加密查詢字符串的話,別人同樣可以用Convert.FromBase64String這個方法來解密你加密後的查詢字符串

  二:Convert.ToBase64String

  ParameterEncryptDecrypt.aspx

  using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Web;
  using System.Web.UI;
  using System.Web.UI.WebControls;
  using System.Configuration;
  using System.Web.Configuration;
  using EPG.CommonClass;
  using System.IO;
  using System.Text;

  namespace EPG.WebAdmin.EncryptDecrypt
  {
      public partial class ParameterEncryptDecrypt : System.Web.UI.Page
      {
          protected void Page_Load(object sender, EventArgs e)
          {
              string strParameter = Request.QueryString["ID"].ToString();//查詢字符串
              //Convert.ToBase64String的參數需要一個字節數組,所以我們先要把查詢字符串轉化爲字節數組
              byte[] bytes = Encoding.Default.GetBytes(strParameter);
              string strEncryptParameter = Convert.ToBase64String(bytes);//加密後的參數
              Response.Write("<br/>加密後的值爲:" + strEncryptParameter);
          }

          /// <summary>
          /// 解密參數
          /// </summary>
          /// <param name="sender"></param>
          /// <param name="e"></param>
          protected void btnParameter_Click(object sender, EventArgs e)
          {
              string strParameter = Request.QueryString["ID"].ToString();
              byte[] bytes = Encoding.Default.GetBytes(strParameter);
              string strEncryptParameter = Convert.ToBase64String(bytes);//加密後的參數
              byte[] bytes2 = Convert.FromBase64String(strEncryptParameter);
              string strDecryptParameter = Encoding.Default.GetString(bytes2);//解密後的參數
              Response.Write("<br/>解密後的值爲:"+ strDecryptParameter);
          }
      }
  }

  三:運行效果

  

  

  

  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章