当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > C#加密路径里的参数,保护参数隐私安全!

ASP.NET
一个有KeepConnection开关的C#的Database类
用控件仅一条指令实现界面换肤和多语言版本
.net datagrid 选择多行
一个用C#写的词法分析程序
关于C#下写的Web Service 服务在Delphi下调用时的问题
多线程填写treeview控件(vb.net)
使用TreeView实现无限级扩展节点
用C#写的一个简单屏幕保护程序
详解对密码执行散列和 salt 运算方法
vb.net的windows窗体实现dos命令
为您的应用程序加上注册的限制
用VS.NET2003制作WEB应用程序的安装包
怎么由DataSet将数据导入Excel?
Visual Basic串口通讯调试方法
QQ验证码识别源代码(C#/NET1.1)
一个用Wsh来控制SqlServer的Dcom的VBs
24点的算法
asp.net 关于form认证的一般设置
和我一起入门Direct3D的VB.net编程
部署ASP.NET的三大技术(1)

ASP.NET 中的 C#加密路径里的参数,保护参数隐私安全!


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 54 ::
收藏到网摘: n/a

写过论坛的朋友,特别是把路径放到数据里,然后在服务器端读取数据库里的字段,把路径信息动态的显示在客户端.

    如过直接以
http://xxxx.xxxx.net/ShowForum.aspx?id=2&rootID=0&userName=myUserName

    就会发现,直接把参数信息显示在Client端了.别有用心的人,可能会对你的服务器进行攻击

    如果在Client这样显示.
http://xxxx.xxxx.net/ShowForum.aspx?bdefEdGa=DEdscFDW&aHJdIDesk=esOddEsA&dsERsdwS=SdEEsaDY


下面我把这样实现的C#.net代码贴出,如大家要转载,请保留本人的版权。

/*
*Description:加密路径信息后,输出到Client端
*Auther:天很蓝_崇崇
*Email:[email protected]
*Dates:2005-01-18
*Copyright:ChongChong2008 YiChang HuBei China
*/

using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using System.Data.SqlClient;
using System.Configuration;

//导入自定义的类库
using _3Layer.DataLayer.DataCommon;
using _3Layer.DataLayer.DataCommon.DataAccess;
using Library.ClassLibrary.Crypt.DES;

namespace CHONGCHONG.XML
 public class RenderingXML : System.Web.UI.Page
 {
  /// <summary>
  /// 从数据库预生成XML数据源
  /// </summary>
  private void PreRenderXML()
  {
   string strSQL = "select语句略去........................;
   myDataLayer.Open();

   RenderingXml="<?xml version='1.0' encoding='gb2312'?>\r\n";
   RenderingXml+="<xml>\r\n";
   try
   {   
    System.Data.SqlClient.SqlDataReader myDR = (SqlDataReader)myDataLayer.ExecuteReader( strSQL );
    while(myDR.Read())
    {
     RenderingXml+="<TreeNode id='"+myDR["BoardID"]+"'>\r\n";
     RenderingXml+="<NodeText>"+myDR["BoardName"]+"</NodeText>\r\n";
     RenderingXml+="<title>"+myDR["Title"]+"</title>\r\n";
     RenderingXml+="<NodeUrl>"+EncodeHTML( EncodeParameter( myDR["Link"].ToString() ) )+"</NodeUrl>\r\n";
     RenderingXml+="<child>"+myDR["children"]+"</child>\r\n";
     RenderingXml+="<target>"+myDR["Target"]+"</target>\r\n";
     RenderingXml+="</TreeNode>\r\n";
    }
   }
   catch(System.Data.SqlClient.SqlException ee)
   {
    return ;
   }
   finally
   {
    myDataLayer.Close() ;  
   }
   RenderingXml+="</xml>";
   byte[] bytResult = Encoding.Default.GetBytes( RenderingXml ) ;
   Response.ContentType = "text/xml" ;
   Response.BinaryWrite( bytResult ) ;
  }


  /// <summary>
  /// Description:加密路径参数
  /// </summary>
  /// <param name="sourParameter"></param>
  /// <returns></returns>
  private string EncodeParameter( string sourParameter )
  {
   string startString = String.Empty ;
   string endString  = String.Empty ;  
   StringBuilder destParameter = new StringBuilder() ;

   if( sourParameter == null || sourParameter.Equals("") )
   {
    destParameter.Append( String.Empty ).ToString() ;