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

ASP.NET
ASP.NET上传图片时 产生预览
动态改变asp.net网页的标题
一个ASP.NET中使用的MessageBox类
ASP.NET设计网络硬盘之两重要类
ASP.NET与MySQL数据库简明图示入门教程
ASP.NET中为DataGrid添加合计字段
利用ASP.NET的内置功能抵御Web攻击
ASP.NET+Web服务实现软件共享
ASP.NET设计网络硬盘之文件夹实现
在ASP.NET中使用SQL的IN操作
datagrid与DataSet结合使用中出现的索引问题
asp.net开发web项目-vss集成环境配置
ASPX保存远程图片到本地的两种方法的函数
ASP.NET设计网络硬盘之删除文件夹
开发ASP.NET下的MP3小偷程序
对“学号”、“身份证”的数字分析
Asp.net url分页的用户控件
ASP.NET 2.0中DataTable小兵变大将
将dataset以xml形式发给客户端下载
ASP.NET实现自适应图片大小的弹窗 窗口可任意编辑

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 65 ::
收藏到网摘: 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() ;