六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

C#加密路徑里的參數(shù),保護(hù)參數(shù)隱私安全!

[摘要]寫過論壇的朋友,特別是把路徑放到數(shù)據(jù)里,然后在服務(wù)器端讀取數(shù)據(jù)庫里的字段,把路徑信息動(dòng)態(tài)的顯示在客戶端. 如過直接以http://xxxx.xxxx.net/ShowForum.aspx?id=2&rootID=0&userName=myUserName 就會(huì)發(fā)現(xiàn),直接...

    寫過論壇的朋友,特別是把路徑放到數(shù)據(jù)里,然后在服務(wù)器端讀取數(shù)據(jù)庫里的字段,把路徑信息動(dòng)態(tài)的顯示在客戶端.

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

    就會(huì)發(fā)現(xiàn),直接把參數(shù)信息顯示在Client端了.別有用心的人,可能會(huì)對你的服務(wù)器進(jìn)行攻擊

    如果在Client這樣顯示.
http://xxxx.xxxx.net/ShowForum.aspx?bdefEdGa=DEdscFDW&aHJdIDesk=esOddEsA&dsERsdwS=SdEEsaDY


下面我把這樣實(shí)現(xiàn)的C#.net代碼貼出,如大家要轉(zhuǎn)載,請保留本人的版權(quán)。

/*
*Description:加密路徑信息后,輸出到Client端
*Auther:天很藍(lán)_崇崇
*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;

//導(dǎo)入自定義的類庫
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>
  /// 從數(shù)據(jù)庫預(yù)生成XML數(shù)據(jù)源
  /// </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:加密路徑參數(shù)
  /// </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() ;
   }
   else
   {
    //開始分析路徑里的?字符
    if( sourParameter.IndexOf("?")<0 )
    {
     destParameter.Append( sourParameter ).ToString() ;
    }
    else
    {
     //以?號分割路徑
     string[] paramPath = sourParameter.Split( new char[]{'?'} ) ;
     startString = paramPath[0].ToString() ;
     endString = paramPath[1].ToString() ;

     //開始分析路徑里的&字符
     if(sourParameter.IndexOf("&")<0)
     {
      //只有一個(gè)參數(shù),用=號分割,直接把NameValue進(jìn)行Des加密
      string[] paramNameValue = endString.Split( new char[]{'='} ) ;
      string paramName = myDES.Encrypt( paramNameValue[0].ToString() ,myDESKey ) ;
      string paramValue = myDES.Encrypt( paramNameValue[1].ToString() ,myDESKey ) ;

      destParameter.Append( startString ).Append("?").Append( paramName ).Append("=").Append( paramValue ) ;
     }
     else
     {
      //有多個(gè)參數(shù),以&號分割?號后面的路徑
      string[] paramJoin = endString.Split( new char[]{'&'} ) ;
      destParameter.Append( startString ).Append("?").Append( EncoderNameValue( paramJoin ) ) .ToString() ;
     }
    }
   }
   return destParameter.ToString() ;

  }

 

  /// <summary>
  /// Description:加密路徑里的NameValue參數(shù)
  /// </summary>
  /// <param name="sourNameValue"></param>
  /// <returns></returns>
  private string EncoderNameValue( string[] sourNameValue )
  {
   string[] paramNameValue ;
   string paramName ;
   string paramValue ;
   StringBuilder sb = new StringBuilder() ;

   for( int i = 0 ; i <= sourNameValue.Length-1 ; i++ )
   {
    //以=號分割每個(gè)NameValue參數(shù)
    paramNameValue = sourNameValue[i].Split( new char[]{'='} ) ;

    //開始對NameValue加密
    paramName = myDES.Encrypt( paramNameValue[0].ToString() ,myDESKey ) ;
    paramValue = myDES.Encrypt( paramNameValue[1].ToString() ,myDESKey ) ;

    //存儲加密后的路徑字符串
    sb.Append( paramName ).Append("=").Append( paramValue ) ;

    //是否最后一個(gè)NameValue參數(shù),若不是在路基里添加&參數(shù)連接符
    if( i<sourNameValue.Length )
    {
     sb.Append("&") ;
    }
   }

   return sb.ToString() ;

  }

 }




主站蜘蛛池模板: 日韩中文字幕免费观看 | 天美蜜桃精东乌鸦果冻麻豆 | 五月天婷婷丁香 | 日本天堂免费观看 | 青草视频网站在线观看 | 亚洲免费影院 | 婷婷久月 | 欧美亚洲欧美区 | 欧美在线观看高清一二三区 | 亚洲网站免费观看 | 亚洲第一视频区 | 色天天天天 | 亚洲欧美日韩专区一 | 色羞羞| 日韩欧美一区二区不卡看片 | 天天爱天天干天天操 | 亚洲一区网站 | 亚洲性视频网站 | 亚洲福利午夜 | 欧美视频第二页 | 日本成人免费 | 中文字幕日韩精品亚洲七区 | 亚洲最大免费视频网 | 日本网络视频www色高清免费 | 羞羞漫画在线阅读页面漫画入口页面弹窗无限 | 日韩在线观看免费 | 亚洲免费高清视频 | 青青草原网站在线观看 | 中文字幕第99页 | 日本乱子 | 日本一二三区高清 | 小视频在线观看免费 | 日韩一级特黄毛片在线看 | 五月天婷婷激情 | 日本青青草 | 中文日韩字幕一区在线观看 | 色综合天天综合高清网国产 | 日本视频免费在线播放 | 五月综合激情 | 色花堂国产精品第二页 | 四虎国产精品永久在线网址 |