当前位置:编程学习 > C#/ASP.NET >>

ASP.NET温故而知新学习系列之网站安全技术—加强页面间传值的安全性

  加强页面间传值的安全性
  使用查询字符串进行页面间传值的过程中,一定要把查询字符串要传递的值进行加密,以下是未对查询字符串加密的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); .NET教程
          }
          /// <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);
          }
      }
  } --------------------编程问答-------------------- --------------------编程问答--------------------
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,